【发布时间】:2017-12-02 11:18:33
【问题描述】:
如何删除 chrome.webNavigation 事件?
chrome.webNavigation.onCompleted.addListener(x.bind(request.data.url), {
url:[{urlPrefix:request.data.url+""}]
});
这就是我创建事件的方式,这就是我试图在“x”函数中删除事件的方式,
chrome.webNavigation.onCompleted.removeListener(arguments.callee);
但奇怪的是,它并没有删除监听器,而是每次调用 addlistener 时,我都会不断添加越来越多的监听器,而不会删除最后一个。
编辑: 所以似乎不可能删除 .bind() 函数创建的匿名函数。
【问题讨论】:
-
我刚刚尝试了与
window.addEventListener()类似的方法,但同样失败。 -
注意:在 chrome(55) 中使用
addEventListener(也在 firefox(50) 和 opera(42) 中,但在 safari (yet)、edge 或 ie 中没有),有一个更简单的获得“一次性”事件监听器的方法...window.addEventListener('whatever', fn, { once: true})- 至于.onCompleted.addListener- 有一个相当简单的方法可以解决这个问题(我想,会添加答案)
标签: javascript google-chrome google-chrome-extension