【发布时间】:2018-08-06 16:34:16
【问题描述】:
我有一个 Chrome 扩展程序,它在内容脚本中侦听它被注入的页面上的特定事件。
侦听器是在 focusin 事件上创建的 - 因为我要侦听的元素仅存在于某些情况下。
一切都很好......除了每次用户关注(可以理解)新的听众被创建。所以我最终得到了很多重复的事件。
我的扩展程序适用于非常具体的页面,所以我知道他们是否有 Jquery...这个有。
在我的焦点监听器中:
$('.PageClass_I_listen_for').blur(function(){
console.log('blurred out of comment area...');
//Do something
});
我尝试在 focusin 侦听器的开头包含“关闭”命令 - 在添加新事件侦听器之前终止所有现有事件侦听器。以下代码没有任何作用:
$(document).off('click', '.PageClass_I_listen_for'); // Kill events
也许您不能杀死作为您的代码被注入的页面的一部分的事件(可以理解)?
有什么办法可以解决这个问题?
帮助表示赞赏!
【问题讨论】:
-
您没有正确使用
off,您添加了一个blur事件侦听器,并且您正在尝试删除一个click事件侦听器。这是DOCUMENTATION forjQuery.off -
这是一个特定于扩展的任务。由于内容脚本在孤立的世界中运行,您需要运行
off代码in page context 来使用页面的jQuery,而不是内容脚本的jQuery。 -
@wOxxOm,谢谢!
标签: javascript google-chrome-extension