【发布时间】:2015-09-09 10:36:38
【问题描述】:
众所周知,window.parent 可以帮助人们在使用多个 iframe 时获取当前窗口的父窗口。但是,我认为应该有一个 parent 为 null 的最外层窗口。
我尝试了 parent.parent.parent.parent... 当我发现其中一个 parent 为 null 时,我想我可以获得根窗口。令人惊奇的是,无论我使用多少个父级,父级变量永远不会为空。
我的情况如下。
域名为:csm.mysite.com 的网站 1
域名为:csmnew.mysite.com 的网站 1-1
Website1-1 在 Website1 的 iframe 中(它们不在同一个域中)
同时,在Website1-1中,有很多iframe(它们在同一个域中)
我需要为 Website1-1 设置/获取一个全局变量,所以我使用了 top。这真的很有帮助。
但是,当 Website1-1 在 Website1 中时,总是会抛出错误,因为顶部变量(在 Website1-1 中)被引用到 Website1 并且对于跨域策略无效。但我真正想要的是设置/获取 Website1-1 的“顶部”变量。
然后我在想是否可以使用 parent.parent.parent.... 来获取 Website1-1 的最外层窗口,而不是使用 top 让我得到错误的窗口。
回到正题,为什么parent.parent.parent...总是null?
顺便问一下,有人知道如何获取“Website1-1”的最外层窗口吗?
非常感谢
【问题讨论】:
-
没有。 如果窗口没有父级,则其父级属性是对自身的引用。 Source
标签: javascript html iframe cross-domain