window.postMessage在Chrome扩展程序上运行异常

时间:2013-03-21 08:36:29

标签: javascript html google-chrome-extension

我在Chrome扩展程序内容脚本中使用window.postMessage:

function() {
   window.addEventListener("message", function(event) {
        console.log(event);
   }, false);


   window.postMessage({ type: \"FROM_PAGE\"}, "*");}

异常行为是我第一次调用此函数,控制台打印事件一次;我第二次打电话,控制台打印两次;第三次,三次 我的代码出了什么问题?

1 个答案:

答案 0 :(得分:2)

这是因为您在调用该函数时添加 EventListener 每次时间。

因此,您添加的每个EventListener都会收到postmessage发布的消息,然后

console.log(event)

所以你第一次给你打电话。您EventListeners的功能仅执行一次,因为只有 1 EventListener附加到调用console.log的DOM

第二次有两个EventListeners执行console.log等等......

您应该附上EventListener

window.addEventListener("message", function(event) {
...
}

在你的功能之外。
并且只做window.postMessage({ type: \"FROM_PAGE\"}, "*"); 部分在函数内部

相关问题