是否存在self.location!= document.location的情况?

时间:2010-07-03 14:16:28

标签: javascript dom

在JavaScript中,是否存在self.location != document.location

的情况

4 个答案:

答案 0 :(得分:4)

window.self属性是对window的引用,window.locationdocument.location的对象相同。

因此,使该表达式成为真的唯一可能性是重新定义selfdocument

答案 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中测试)