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.
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>
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
.
<script>
document.write("<base href='"+ window.location.protocol +'//' + window.location.Host + "' >");
</script>