Я хочу установить базовый атрибут href страницы в Javascript, основываясь на текущем имени хоста. Я сгенерировал HTML-страницы, которые можно просматривать на разных именах хостов, что означает, что создание базового тега href будет работать на одном имени хоста, но будет некорректным на другом.
Правильный способ сделать это - сделать document.write тега на основе текущего имени хоста:
Правильно:
<script type="text/javascript">
document.write("<base href='http://" + document.location.host + "' />");
</script>
Этот метод дал правильные результаты в IE, FF, Chrome и Safari. Результат (правильный) отличается от следующего:
Неверно:
<script type="text/javascript">
var newBase = document.createElement("base");
newBase.setAttribute("href", document.location.hostname);
document.getElementsByTagName("head")[0].appendChild(newBase);
</script>