窗口、window.top和window.parent之间有什么区别?

80

我刚刚注意到topwindowparent变量都给了我相同的值。我是在 Gmail 收件箱页面测试这个的。有人知道这三个值之间的区别吗?


1
还有一个window.self,它指向相同的窗口 :) - abhimanyuaryan
1个回答

173

如果你在一个框架内:

  • window 指当前框架。
  • parent 指当前框架的父级。
  • top 指最外层的框架。

如果你不在任何框架中,这些将全部只是对当前窗口的引用。如果你只在一个框架层级内,则parenttop都是指向同一对象的引用。


谢谢。您知道是否有任何特定的浏览器特殊条件吗?例如,在XXX中不适用顶部... - Rudolf Real
不应该有问题,但是如果您的页面被另一个安全上下文的页面(根据同源策略,即不同的主机名)在框架中打开,则无法访问父对象内部的属性。这只是所有浏览器的正常安全性。它通过在框架中打开另一个站点(或被另一个站点在框架中打开)来防止跨站点脚本攻击。 - thomasrutter
3
此外,如果没有嵌套,self也指代同一对象。 - another

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接