窗口之间有什么区别。Location和document。Location ?它们是否都引用同一个对象?


当前回答

实际上,我注意到两者之间的chrome的区别,例如,如果你想做一个导航到沙盒框架从一个子框架,那么你可以这样做,只是与文档。Location,但不是window。Location

其他回答

获取当前位置对象的规范方法是window。位置(参见1996年的MSDN页面和2006年的W3C草案)。

将此与文档进行比较。location,它最初只返回当前URL作为字符串(请参阅MSDN上的此页)。可能是为了避免混淆,文档。位置已替换为文档。URL(请参阅MSDN),它也是DOM级别1的一部分。

据我所知,所有现代浏览器都映射文档。窗口的位置。不过我还是喜欢靠窗的。location,因为这是我自编写第一个DHTML以来一直使用的。

Document.location.constructor === window.location.constructor为true。

这是因为它与document.location===window.location中看到的对象完全相同。

因此,不需要比较构造函数或任何其他属性。

至少在IE中,它在本地文件上有一点不同:

文档。URL将返回 ”文件:/ / C: \ \ abc \ a.html项目”

但是window。location。href会返回 “文件:/ / / C: / / abc / a.html”项目

一个是反斜杠,一个是正斜杠。

窗口。考虑到较老的浏览器,位置是两者中更可靠的一致性。

文档。location最初是一个只读属性,尽管Gecko浏览器也允许你为它赋值。为了跨浏览器安全,请使用window。位置相反。

阅读更多:

document.location

window.location