我应该使用以下哪种方法将location
对象分配给javascript中的局部变量?
var l = location;
var l = window.location;
var l = window.document.location;
为什么有那么多方法?有什么不同吗?
答案 0 :(得分:3)
我会使用window.location
来帮助确保我真的在谈论全局对象的属性,而不是一些恰好被称为location
的局部变量。
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框架的父页面是否正确,如果没有重定向到右框架。