我正在撰写Chrome扩展程序,将内容脚本注入页面。该脚本在页面上的 select 元素中添加了一个事件监听器,这样只要有人从下拉列表中选择一个新值,就可以执行例程。
我尝试使用“普通”JS方法添加此事件侦听器:
document.getElementById('mySelect').addEventListener('change', doSomething);
...和jQuery方法:
$('#mySelect').change(doSomething);
似乎都没有用;事件永远不会发生。
通过使用Chrome的开发人员工具检查元素,我发现该元素已经有一个事件监听器,由页面上已经运行的另一个脚本创建。我知道这个监听器正在运行,因为生成的脚本会将一些数据记录到控制台。我想知道这个现有的听众是否能以某种方式“吸收”改变事件并阻止它到达我自己的听众。
奇怪的是,当我打开元素的monitorEvents时,它不会记录任何类型的事件(甚至不应该受到影响的事情,例如鼠标悬停)。
有什么想法吗?