В чем разница между нажатием кнопки:
<a href />
против.
вызов window.location.href = ...
?
В чем разница между нажатием кнопки:
<a href />
против.
вызов window.location.href = ...
?
По возможности, вы должны использовать <a href="foo.html">
над window.location.href
по ряду очень веских причин.
window.location
разбивает все этиНастройка window.location.href = 'thepage.html'
совпадает с вызовом:
window.open('thepage.html', '_self');
т.е. цель ограничена одним и тем же окном, так как это свойство местоположения. Это имеет тот же эффект, что и щелчок по ссылке без целевого атрибута:
<a href="thepage.html">...</a>
Вместо этого вы можете использовать метод open, чтобы указать другую цель, например новое окно:
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';
Не забывайте, что в дополнение к приведенным выше ответам щелчок по гиперссылке (тег привязки) вызывает этот элемент onclick
обработчик (если он есть), тогда как версия Javascript явно не делает и просто изменяет расположение окна.
Можно вручную вызвать обработчик onclick из Javascript, если вы хотите имитировать клик, но вы должны помнить об этом вручную. Отмеченные вами фрагменты будут отличаться в этом отношении, что может быть причиной каких-либо поведенческих различий.
С помощью привязки вы можете указать целевое свойство, но с помощью window.location.href вы не можете. Обычно якорь используется, когда пользователь хочет перенаправить браузер в другое место, window.location.href используется, когда перенаправление выполняется с помощью javascript.
В дополнение к другим приведенным ответам, нажатие на элемент <a>
с атрибутом href
sapecified приведет к тому, что браузер перейдет к URL-адресу в href
, независимо от того, включен ли JavaScript или нет.
document.referrer содержит ссылку на сервере и клиенте на URL страницы, содержащую ссылку, которую пользователь нажал, чтобы перейти на новую страницу - сценариев методов размещения нет.