javascript - iframe 子级与多个 iframe 的父级通信

标签 javascript iframe

我正在尝试实现一些 iframe 通信。我在 http://parent.com 上托管了以下页面:

<html>
   <iframe id="iframe1" src="http://child.com"/>
   <iframe id="iframe2" src="http://child.com"/>
   <iframe id="iframe3" src="http://child.com"/>
</html>

我正在尝试使用 postMessage 使 iframe1 和 iframe2 之间的通信成为可能,但我似乎找不到如何实现。

这是我在子 iframe 中的代码:

var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
var eventer = window[eventMethod];
var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message";

eventer(messageEvent, function(event) {
   event.source.postMessage("somerandomdata", "http://child.com)
}, false);

提前致谢!

最佳答案

您是否考虑过使用cross-document messaging .

父窗口:

 myIframe.contentWindow.postMessage('hello', '*');

子 iframe:

window.onmessage = function(e){
    if (e.data == 'hello') {
        alert('It works!');
    }
};

关于javascript - iframe 子级与多个 iframe 的父级通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43898756/

相关文章:

php - 是否存在允许设备无需下载或流式传输即可访问和使用数据的技术?

javascript - Node Webkit 程序因 nwdirectory 崩溃

javascript - 将元素从一个数组移动到另一个数组

javascript - document.body.innerHTML 不适用于 iframe

javascript - 使 alt 标签显示更快

javascript - 将单击的表单传递给 bootbox.confirm()

javascript - 如何防止 iFrame 中的 JavaScript 访问外部站点的属性,即使 iFrame 的内容来自同一来源?

javascript - 如何在 iPad 上使用 Javascript 打印 iFrame 的内容?

Django -- IE 上 IFrame 的 CSRF 失败。无法访问策略修复的父服务器 header

javascript - 第一次点击后是否可以更改 iFrame 样式(不在同一域上)