Как мне установить базовый href страницы в Javascript? - PullRequest
18 голосов
/ 16 августа 2010

Я хочу установить базовый атрибут href страницы в Javascript на основе текущего имени хоста.Я сгенерировал HTML-страницы, которые можно просматривать на разных именах хостов, что означает, что создание базового тега href будет работать на одном имени хоста, но на другом будет некорректным.

Ответы [ 3 ]

33 голосов
/ 16 августа 2010

Правильный способ сделать это - сделать 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>
5 голосов
/ 11 июня 2017

Я думаю, тебе лучше сделать это так

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

Поскольку location.hostname не возвращает корень контекста приложения! Вы также можете зарегистрировать document.location на консоли console.log, чтобы увидеть все доступные метаданные на document.location.

1 голос
/ 26 августа 2016
document.write ( "");

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