Каково различие между window.location и document.location в JavaScript?

Действительно ли они оба должны сослаться на тот же объект?

226
задан serv-inc 7 May 2017 в 06:09
поделиться

5 ответов

Согласно W3C, они одинаковы. На самом деле, для кроссбраузерной безопасности вы должны использовать window.location , а не document.location .

См .: http://www.w3.org/TR/html/browsers.html#dom-location

200
ответ дан 23 November 2019 в 03:51
поделиться

window.location более надежно согласован из двух, учитывая старые браузеры.

8
ответ дан 23 November 2019 в 03:51
поделиться

document.location === window.location возвращает true

также

document.location.constructor === window. location.constructor is true

Примечание. Только что протестировано в Firefox 3.6, Opera 10 и IE6

13
ответ дан 23 November 2019 в 03:51
поделиться

Да, они такие же. Это одна из многих исторических причуд JS API браузера. Попробуйте выполнить:

window.location === document.location
10
ответ дан 23 November 2019 в 03:51
поделиться

Канонический способ получить объект текущего местоположения - window.location (см. эту страницу MSDN от 1996 г. и проект W3C от 2006 г. ).

Сравните это с document.location , который изначально возвращал только текущий URL-адрес в виде строки (см. эту страницу в MSDN ). Вероятно, чтобы избежать путаницы, document.location был заменен на document.URL (см. здесь, в MSDN ), который также является частью DOM Level 1 .

Насколько мне известно, все современные браузеры отображают document.location в window.location , но я по-прежнему предпочитаю window.location как то, что я Я использовал с тех пор, как написал свой первый DHTML.

204
ответ дан 23 November 2019 в 03:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: