从iframe访问父窗口(跨域)

Vit*_*dev 10 html javascript iframe cross-domain

我遇到了从iFrame访问父窗口的任务,如果iFrame中的窗口是从另一个域加载的.如果我理解正确,现在所有现代浏览器都允许这样做.所以我在这里找到最好的解决方案.

我将以下一个方式完成此任务:

我有一个叠加内部的iFrame.这将有效,而不是弹出窗口阻止弹出窗口阻止程序阻止我的内容.任务是在iFrame中的文档完成某些工作时重新加载主页面.在一个将加载到iFrame的文档中,我将添加

<div id="is_closed" class="false"></div>
Run Code Online (Sandbox Code Playgroud)

在父窗口中,我将添加函数,该函数将每秒调用一次并检查此div是否仍具有类名"false".当这将改为"true"时,我会打电话给一些回调.

如果您有更好的解决方案,请与我分享.将不胜感激任何帮助.

编辑:这是不可能的,因为它不仅无法从子窗口操纵父窗口,反之亦然.我的想法是从父窗口操纵子窗口.我错了.

jer*_*ome 41

如果我是你,我会看看window.postMessage.它可以做你想要的:

供参考,请参阅以下内容:


Jam*_*ill 13

如果我理解正确,现在所有现代浏览器都允许这样做.所以我在这里找到最好的解决方案.

你的解决方案.你问的是不可能的.

查看相关问题:

编辑

如下面的评论中所述,@ JeremysAwesome的答案提供了一种允许在某些情况下跨域请求的方法.有关详细信息,请参阅下面的SO问题.

如何规避同源政策

  • 正如其他人所指出的那样,这实际上是可能的,例如通过postMessage.所以@jeremysawesome答案应该是被接受的答案. (4认同)

gri*_*lly 7

但是你可以改变(例如添加一个)的src属性并在子窗口中监听事件.鉴于您有能力更改两个页面.iframe#hashtagonhashchange