window.location和location.href之间的区别

Riz*_*hid 36 javascript

我很困惑,之间的差异window.locationlocation.href.两者似乎都以同样的方式行事.

有什么不同?

Mat*_*z W 29

window.location 是一个对象,包含有关当前文档位置(主机,href,端口,协议等)的所有信息.

location.href 是window.location.href的简写(你从全局对象 - 窗口调用位置,所以这是window.location.href),这只是一个包含当前网站完整URL的字符串.

当您为它们分配URL时,它们的行为相同 - 它们将重定向到您指定的页面,但是当您打开浏览器控制台(firebug或开发人员工具)并写入window.location和时,您可以看到它们之间的差异location.href.


Jam*_*ruk 16

它们是不同的.window.location是包含属性的对象,该属性href字符串.

正如您所注意到的那样,设置window.locationwindow.location.href行为方式相同,因为它很久以前就构建在JavaScript语言中.在这个关于设置window.location的问题中阅读更多内容.

获得 window.locationwindow.location.href表现不同,因为前者是一个对象而后者是一个字符串.如果你运行像indexOf()或的字符串函数toLowerCase(),你必须使用window.location.href.


gdo*_*ica 5

window.location除了具有其他属性,href但如果您分配window.location一个 URL,它将重定向。

你可以在MDN 中看到它的所有属性(比如search, protocol, hash, ...)