在JavaScript中,是否存在self.location != document.location
?
答案 0 :(得分:4)
window.self
属性是对window
的引用,window.location
与document.location
的对象相同。
因此,使该表达式成为真的唯一可能性是重新定义self
或document
。
答案 1 :(得分:1)
我认为这取决于范围。据我所知,有可能(重新)在对象中甚至在全局范围内定义self
,因此在这种情况下self.location
将指向任何内容。像这样:
//[in global scope]
var self = new SomeObject;
alert(self.loction); //undefined
//in a constructor
function SomeObject(){
var self = this;
alert(self.location); //undefined
}
底线似乎:不要盲目地依赖于self
的可用性作为document
的别名
答案 2 :(得分:0)
document.location是一个字符串,而不是一个对象, 它已被document.URL取代。
服务器重定向的url不必更新window.location, 但document.URL始终显示当前文档的路径。
答案 3 :(得分:0)
由于我无法发表评论,显然在一个框架中self.location
== document.location
== window.location
。只有top.location
不同。 (在Firefox 3.6.6和Internet Explorer 8中测试)