Какой предпочтительный метод используется для изменения местоположения текущей веб-страницы с помощью JavaScript? Я видел как window.navigate, так и document.location. Есть ли различия в поведении? Есть ли различия в реализации браузера?
javascript
html
navigation
dthrasher
источник
источник
window.location.href
это полная реализация, но онаwindow.location
выполняет то же самое. См. Docs.sun.com/source/816-6408-10/location.htm : «Если вы назначаете строкуlocation
свойству объекта, JavaScript создаетlocation
объект и назначает эту строку егоhref
свойству».window.location
но это не обязательно указывает на один из способов: developer.mozilla.org/en/window.location .window.location.href = 'URL';
а такжеwindow.location.assign('URL');
метод, который предназначен для перезагрузки новой страницы. Дополнительную информацию можно найти на w3schools.com/jsref/obj_location.aspwindow.navigate
это запатентованный метод, используемый Internet Explorer (я уверен, что другие браузеры имитируют его для совместимости, Chrome - нет).document.location
илиwindow.location
являются стандартными объектами (см. различные спецификации HTML / HTML5 / DOM).document.location = someURL
(илиwindow.location = someURL
) возможно поддерживается из-за устаревшего кода. Правильный способ сделать этоdocument.location.href = someURL
, или, возможноdocument.location.assign(someURL)
.источник
document.locatio n (устаревшее, но все еще присутствует) строковое свойство, доступное только для чтения, заменяется document.url .
источник
window.location
также влияет на раму,лучшая форма, которую я нашел:
И тем хуже
Я провел масштабное тестирование браузера, и некоторые редкие IE с несколькими плагинами стали неопределенными со второй формой.
источник
window.location
повлияет на цель вашего браузера. document.location повлияет только на ваш браузер и фрейм / фрейм.источник
window.navigate
НЕ поддерживается в некоторых браузерах, поэтому его следует избегать. Любой из других методов, использующих свойство location, является наиболее надежным и последовательным подходом.источник
Я бы пошел с
window.location = "http://...";
. Я программировал кросс-браузерный JavaScript в течение нескольких лет, и у меня никогда не возникало проблем с использованием этого подхода.window.navigate
иwindow.location.href
кажется немного странным для меня.источник
Там действительно нет разницы; Есть около 5 различных способов сделать это. Тем не менее, те, которые я вижу чаще всего,
document.location
иwindow.location
потому что они поддерживаются всеми основными браузерами. (Я лично никогда не виделwindow.navigate
, чтобы он использовался в рабочем коде, так что, может быть, он не очень хорошо поддерживает?)источник
поддержка
document.location
также хороша, хотя это устаревший метод. Я использовал этот метод некоторое время без проблем. Вы можете обратиться сюда для более подробной информации:https://developer.mozilla.org/en-US/docs/Web/API/document.location
источник
Вы можете переместить свою страницу, используя
источник