Parent-iframe postMessage通信

时间:2013-11-22 11:12:41

标签: javascript iframe

我正在尝试在父窗口和其中包含的iframe之间建立一个简单的postmessage通信。我在父方那边得到了这段代码:

var ifr = document.getElementById("ifr");

ifr.contentWindow.postMessage('hello child, this is parent', '*');

window.addEventListener('message', function (e) { console.log(e.data) });

在孩子方面,我有:

window.parent.postMessage('hello parent, this is child', '*')

window.addEventListener('message', function (e) {console.log(e.data) } );

我收到了iframe发送的消息,但没有收到父节点发送的消息,我已经检查过,并且get正确选择了iframe元素。这仅用于测试目的,以用于其他目的。

1 个答案:

答案 0 :(得分:3)

当您向iframe发送消息时,它尚未加载。使用“onload”事件开始与iframe进行通信。

ifr.onload = function() { 
    this.contentWindow.postMessage('hello child, this is parent', '*');
};