web-dev-qa-db-fra.com

Comment définir la base d'une page en Javascript?

Je souhaite définir l'attribut href de base d'une page en Javascript en fonction du nom d'hôte actuel. J'ai généré des pages HTML pouvant être visualisées sous différents noms d'hôte, ce qui signifie que générer une balise href de base fonctionnera sous un nom d'hôte mais sera incorrect dans l'autre.

18
Zach Gardner

La bonne façon de faire est de faire un document.write de la balise basé sur le nom d’hôte actuel:

Correct:

<script type="text/javascript">
document.write("<base href='http://" + document.location.Host + "' />");
</script>

Cette méthode a produit des résultats corrects dans IE, FF, Chrome et Safari. Cela produit un résultat (correct) différent de ce qui suit:

Incorrect:

<script type="text/javascript">
var newBase = document.createElement("base");
newBase.setAttribute("href", document.location.hostname);
document.getElementsByTagName("head")[0].appendChild(newBase);
</script>
34
Zach Gardner

Je pense que tu ferais mieux de le faire de cette façon 

    <script type="text/javascript">
        document.head.innerHTML = document.head.innerHTML + "<base href='" + document.location.href + "' />";
    </script>

Comme location.hostname ne renvoie pas la racine de contexte d'application! Vous pouvez également enregistrer le document.location sur la console console.log pour afficher toutes les métadonnées disponibles sur document.location.

5

<script>
document.write("<base href='"+ window.location.protocol +'//' + window.location.Host + "' >");
</script>

1
Aleem Latif