Я хочу установить атрибут href на основе страницы в Javascript, основанный на текущем имени хоста. Я создал HTML-страницы, которые можно просмотреть на разных именах хостов, что означает, что генерация базового тега href будет работать в одном имени хоста, но будет неправильным в другом.
Как установить href на странице в Javascript?
Ответ 1
Правильный способ сделать это - сделать 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>
Ответ 2
Я думаю, вам лучше сделать это так.
<script type="text/javascript">
document.head.innerHTML = document.head.innerHTML + "<base href='" + document.location.href + "' />";
</script>
Поскольку location.hostname
не возвращает корень контекста приложения! Вы также можете зарегистрировать document.location
на консоли console.log
, чтобы просмотреть все доступные метаданные на document.location
.
Ответ 3
document.write( "");
<script>
document.write("<base href='"+ window.location.protocol +'//' + window.location.host + "' >");
</script>