在javascript中访问位置对象的最佳方法是什么?

时间:2012-05-30 21:45:09

标签: javascript object

我应该使用以下哪种方法将location对象分配给javascript中的局部变量?

var l = location;
var l = window.location;
var l = window.document.location;

为什么有那么多方法?有什么不同吗?

4 个答案:

答案 0 :(得分:3)

我会使用window.location来帮助确保我真的在谈论全局对象的属性,而不是一些恰好被称为location的局部变量。

W3C specs说:

  

Window接口的location属性必须返回该Window对象的Document的Location对象。

所以这两个确实是等价的(实际上是完全相同的对象)。

location恰好是window.location的简写,只要范围内没有其他名为location的变量。

答案 1 :(得分:3)

它们都引用同一个对象。虽然window.location更明确,但是跨浏览器兼容并且可以防止在不同范围内与名为location的其他变量发生冲突。

  

为什么这么多方式?

过去时代的浏览器差异/遗留残余。

答案 2 :(得分:0)

在网络浏览器中,window始终位于变量查找链的顶部。因此,全局变量x也是window.x。例如:

<script>
var x = 1;
window.alert(window.x);
</script>

会提醒1。同样,如果链中没有名为location更多本地变量,window.location也将解析为location

答案 3 :(得分:-1)

window.location是_top位置。 document.location是当前的html页面位置

如果您在iframe文档中,iframe的位置会有所不同,因为window.location指的是父页面。

通过对此进行检查,您可以通过检查是否相同来断开帧。如果不打破未经授权的框架。 或检查我的i框架的父页面是否正确,如果没有重定向到右框架。