他们都应该引用同一个对象吗?
JavaScript 中的 window.location 和 document.location 有什么区别?
IT技术
javascript
window.location
2021-02-05 12:56:48
6个回答
根据 W3C,它们是相同的。实际上,为了跨浏览器安全,您应该使用window.location
而不是document.location
.
获取当前位置对象的规范方法是window.location
(参见1996 年的 MSDN 页面和2006年的 W3C 草案)。
将此与 比较document.location
,后者最初仅将当前 URL 作为字符串返回(请参阅MSDN 上的此页面)。可能是为了避免混淆,document.location
被替换为document.URL
(参见MSDN 上的此处),这也是DOM Level 1 的一部分。
据我所知,所有现代浏览器映射document.location
到window.location
,但我还是喜欢window.location
因为这是自从我写我的第一DHTML我所用。
window.location在所有兼容的浏览器上都是读/写的。
document.location在 Internet Explorer 中是只读的(至少),但在基于 Gecko 的浏览器(Firefox、SeaMonkey)中是读/写的。
document.location
最初是一个只读属性,尽管Gecko 浏览器也允许您分配给它。为了跨浏览器的安全,请window.location
改用。
阅读更多:
有趣的是,如果您有一个名为“location”的框架、图像或表单,那么“document.location”将分别提供对框架窗口、图像或表单的引用,而不是 Location 对象。显然,这是因为 document.forms、document.images 和 window.frames 集合名称查找优先于映射到 window.location。
<img name='location' src='location.png'>
if (document.location.tagName == 'IMG') alert('Hello!')
其它你可能感兴趣的问题