我似乎无法删除接收器事件监听器。鉴于下面的代码,控制台将继续无休止地打印“hi”。
接收者:
window.addEventListener("message", function(e){
console.log('hi');
window.removeEventListener("message", function(e){}, false)
}, false);
发件人:
var emiter = setInterval(function(){
console.log('sending message');
window.parent.postMessage( messageData, "*" );
}, 1000);
有办法解决这个问题吗?
最佳答案
我相信为了删除监听器,您必须引用相同的函数,如下所示:
var f = function(e){
console.log('hi');
window.removeEventListener("message", f, false);
}
window.addEventListener("message", f);
所以你的不起作用的原因是因为它没有作为监听器对该函数的引用。
关于html - 停止监听 postMessage 消息事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13093785/