Javascript window.parent 变量永远不会为空
Javascript window.parent variable is never null
众所周知,window.parent可以帮助人们在使用多个iframe时获取当前的parent window。但是,应该有一个最外层的window 其 parent 为 null 我认为 .
我试过 parent.parent.parent.parent... 我以为我可以得到根 window,但我发现其中一个 parent 为空。令人惊奇的是,无论我使用了多少 parent,parent 变量永远不会为空。
我的情况如下。
网站 1 的域:csm.mysite.com
网站 1-1 的域:csmnew.mysite.com
Website1-1 在 Website1 的 iframe 中(它们不在同一个域中)
同时,在Website1-1中,有多个iframe(它们在同一个域)
我需要 set/get Website1-1 的全局变量,所以我使用了 top。这真的很有帮助。
但是,当 Website1-1 在 Website1 中时,总是会抛出错误,因为 top 变量(在 Website1-1 中)被引用到 Website1 而这对 cross-domain 策略无效。但我真正想要的是 set/get "top" Website1-1 的变量。
然后我在想是否可以使用 parent.parent.parent... 获取 Website1-1 的最外层 window,而不是使用让我弄错 window 的顶部。
回到主题,为什么parent.parent.parent...总是null?
顺便问一下,有没有人知道如何获得 "Website1-1" 的最外层 window?
非常感谢
window.parent,如果 window 没有父项,包含对自身的引用,这就是它永远不会为 null 的原因。
来源:https://msdn.microsoft.com/en-us/library/ms952669.aspx
要查找最外层的 window,您可以使用 window.frameElement。这按照您期望 window.parent 的方式工作:
此处有更多详细信息:https://developer.mozilla.org/en-US/docs/Web/API/Window/frameElement
众所周知,window.parent可以帮助人们在使用多个iframe时获取当前的parent window。但是,应该有一个最外层的window 其 parent 为 null 我认为 .
我试过 parent.parent.parent.parent... 我以为我可以得到根 window,但我发现其中一个 parent 为空。令人惊奇的是,无论我使用了多少 parent,parent 变量永远不会为空。
我的情况如下。
网站 1 的域:csm.mysite.com
网站 1-1 的域:csmnew.mysite.com
Website1-1 在 Website1 的 iframe 中(它们不在同一个域中)
同时,在Website1-1中,有多个iframe(它们在同一个域)
我需要 set/get Website1-1 的全局变量,所以我使用了 top。这真的很有帮助。
但是,当 Website1-1 在 Website1 中时,总是会抛出错误,因为 top 变量(在 Website1-1 中)被引用到 Website1 而这对 cross-domain 策略无效。但我真正想要的是 set/get "top" Website1-1 的变量。
然后我在想是否可以使用 parent.parent.parent... 获取 Website1-1 的最外层 window,而不是使用让我弄错 window 的顶部。
回到主题,为什么parent.parent.parent...总是null?
顺便问一下,有没有人知道如何获得 "Website1-1" 的最外层 window?
非常感谢
window.parent,如果 window 没有父项,包含对自身的引用,这就是它永远不会为 null 的原因。
来源:https://msdn.microsoft.com/en-us/library/ms952669.aspx
要查找最外层的 window,您可以使用 window.frameElement。这按照您期望 window.parent 的方式工作:
此处有更多详细信息:https://developer.mozilla.org/en-US/docs/Web/API/Window/frameElement