В чем разница между нажав на:window.location.href против нажатия на якорной
<a href />
против
вызова window.location.href = ...
?
В чем разница между нажав на:window.location.href против нажатия на якорной
<a href />
против
вызова window.location.href = ...
?
По возможности, вы должны использовать <a href="foo.html">
по телефону window.location.href
по ряду очень веских причин.
window.location
перерывы все из этихС помощью якоря вы можете указать свойство target, но с window.location.href вы не можете. Обычно якорь используется, когда пользователь хочет перенаправить браузер в другое место, window.location.href используется, когда перенаправление выполняется с помощью javascript.
Ну, это правда, но немного вводит в заблуждение. Вы выбираете цель неявно в версии Javascript объектом, на который вы вызываете метод. ** window **. location.href изменяет текущее окно, но ** mytarget **. location.href изменит другое окно/фрейм (предполагая, что переменная была объявлена соответствующим образом). –
Независимо от того, вы не должны использовать атрибут target в любом случае. –
И кто это сказал? В любом случае он просит разногласий, и это один из них, поэтому голосуйте, но это правильно. @dtsazza: вы правы, но он говорит о window.location не somethingElse.location – mck89
В дополнение к другим ответам, нажав на <a>
элемент с атрибутом href
sapecified заставит браузер перейти к URL в href
, независимо от того, включен JavaScript или нет.
Не забывайте, что в дополнение к приведенным выше ответам щелчок по гиперссылке (тег привязки) вызовет обработчик этого элемента onclick
(если есть), тогда как версия Javascript явно не меняет и просто изменяет местоположение окна.
Можно вручную вызывать обработчик onclick из Javascript, если вы хотите имитировать клик, но вы должны помнить об этом вручную. Отмеченные вами фрагменты будут отличаться в этом отношении, что может быть причиной любых поведенческих различий.
Установка window.location.href = 'thepage.html'
такая же, как вызов:
window.open('thepage.html', '_self');
Т.е. цель ограничена одним и тем же окном, так как это свойство местоположения.Это имеет тот же эффект, нажав на ссылку без целевого атрибута:
<a href="thepage.html">...</a>
Вы можете использовать открытый метод вместо того, чтобы указать другую цель, как в новом окне:
window.open('thepage.html', '_blank');
Это имеет тот же как нажатие на ссылку с этой целью:
<a href="thepage.html" target="_blank">...</a>
Вы также можете использовать метод open, чтобы открыть новое окно. Возвращаемое значение является ссылкой на окно, так что вы можете использовать, чтобы установить местоположение этого окна вместо текущего окна:
var w = window.open('about:blank', '_blank');
w.location.href = 'thepage.html';
document.referrer содержит ссылку на сервер и клиент к URL из страница, содержащая ссылку, которую пользователь нажал, чтобы перейти на новую страницу, - .
Отличный ответ. Я бы также добавил Shift + Нажмите, чтобы открыть в новом окне, и Ctrl + Click, чтобы открыть на новой вкладке. –