如何欺骗iframe,它是最顶层的窗口

时间:2016-01-06 19:44:55

标签: javascript html iframe

我想知道,有没有办法覆盖iframe的window.top和window.parent,以便从它的上下文中得到以下内容

window === window.parent && window === window.top

案例是我要嵌入iframe的应用程序有很多对window.top的引用,它存储对象并使用它们与自己的子iframe进行来回通信。

<iframe sandbox=""></iframe>

没有&#34; allow-scripts&#34;对我来说不是一个选项,因为任何对window.top的访问都会抛出错误,而我希望事情的工作方式就像iframe是顶级窗口一样

注意: 我看到了一个类似的问题How to Trick/Fool an Iframe to thinking its the TOP element in DOM,但在同样的要求,实际的问题 - 改变top.location可以解决,这就是为什么我猜这个讨论已经停止。

1 个答案:

答案 0 :(得分:2)

简单的答案是,你无法改变只读属性。

更复杂的答案是您可以通过代理服务器解析其他站点并动态重写JS。但是我强烈期望这比它的价值更大,并且可能在某些时候违反版权法。

您应该问的问题是第三方是否想要进入您的iFrame?如果是,让他们修复他们的代码,如果没有,那么你不应该这样做。