我正在尝试在父窗口和其中包含的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元素。这仅用于测试目的,以用于其他目的。
答案 0 :(得分:3)
当您向iframe发送消息时,它尚未加载。使用“onload”事件开始与iframe进行通信。
ifr.onload = function() {
this.contentWindow.postMessage('hello child, this is parent', '*');
};