我有一个页面通过postMessage与iframe通信。
alert('Breakpoint of the posting function');
sender_window.postMessage(JSON.stringify({
test:Util.guid(),
protocol: mail.protocol,
data: mail.data,
}), myURL);
然后在iframe代码中,我有一个接收器:
function receiveMessage(event) {
console.log(event.origin);
if (event.origin == myWebserver) {
console.log("Analysing instructions...");
try {
realobj = JSON.parse(event.data);
alert(realobj.test);
}catch(e){
alert(e);
}
}
}
window.addEventListener("message", receiveMessage, false);
嗯,代码比这要复杂得多,但是我需要知道从哪里可以开始寻找错误。
[基本上,错误是我两次收到消息。 receiveMessage被触发两次,到目前为止,我唯一知道的是:
•内嵌postMessage的发布功能仅被调用一次(仅一个警报)
•每次触发receiveMessage时通过Util.guid()生成的唯一ID都是相同的
我有点困惑,我不知道在哪里看。谢谢。
好吧,答案很愚蠢:当我尝试以其他方式包括JS脚本时,我已经放置了]]
中,以测试defer。但是我在body的底部也包含了相同的行,以最后加载它。<script src="body.js" defer></script>
在head