window.addEventListener('message')是否会覆盖其他侦听器?

时间:2014-03-05 17:29:42

标签: javascript iframe postmessage

我有一些使用.postMessage()与iframe通信的代码,这意味着它需要在message上添加一个侦听器来接收来自iframe的通信。我正在使用通常的代码:

window.addEventListener('message', processMessage, false);

此代码在客户端页面上运行,其中包含许多其他内容:分析,社交按钮等。我注意到我在console.log函数中添加了processMessage以进行调试来自iframe的通信,它正在从使用.postMessage的第三方插件中获取大量其他流量。

忽略它们不是问题,因为我正在寻找来自iframe的非常具体的消息,但我想确保我不会覆盖任何应该从FB脚本中获取这些消息的侦听器等等向前。我之前遇到过多个window.onresize事件覆盖彼此的问题。这是消息的事件监听器的问题吗?

1 个答案:

答案 0 :(得分:11)

addEventListener不会覆盖现有的事件侦听器,它只是添加一个新方法,如方法名称所暗示的那样。必须使用removeEventListener方法删除现有侦听器。

addEventListener info

removeEventListener info