JavaScript postMessage + receiveMessage中的重复接收

问题描述 投票:0回答:1

我有一个页面通过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都是相同的

我有点困惑,我不知道在哪里看。谢谢。

javascript javascript-events
1个回答
0
投票

好吧,答案很愚蠢:当我尝试以其他方式包括JS脚本时,我已经放置了]]

   <script src="body.js" defer></script>

head

中,以测试defer。但是我在body的底部也包含了相同的行,以最后加载它。
© www.soinside.com 2019 - 2024. All rights reserved.