Javascript 确保内容脚本看到“单击”事件

Javascript 确保内容脚本看到“单击”事件,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我正在为Chrome编写一个扩展,用于监听和捕获用户的点击事件。 这就是我捕捉事件的方式 document.addEventListener('click', async function (e) { }); 它在许多情况下都很有效,但也有一些情况下,click事件永远不会被触发,而是有一个或多个focusout事件被触发。我了解到,当javascript更改某些设置值(如将值设置为隐藏输入或类似设置)时,可能会触发focusout事件 问题是,我无法理解为什么在某些情况下不会触发clic

我正在为Chrome编写一个扩展,用于监听和捕获用户的点击事件。 这就是我捕捉事件的方式

document.addEventListener('click', async function (e) {

});

它在许多情况下都很有效,但也有一些情况下,click事件永远不会被触发,而是有一个或多个focusout事件被触发。我了解到,当javascript更改某些设置值(如将值设置为隐藏输入或类似设置)时,可能会触发focusout事件

问题是,我无法理解为什么在某些情况下不会触发click事件。我可以认为,当函数(上面显示的函数)附加到内容时,仍然有一些元素没有附加到DOM,但我不确定,也确实没有找到相关文档。或者一种测试它的方法。
如果有人能帮我一把,我会很感激的。监听
点击事件的page元素函数可以调用preventDefault()或stopPropagation(),这样你的监听器就看不到它了

尝试在事件的第一个阶段,即捕获阶段,在传播链的第一个事件目标上侦听,
窗口

window.addEventListener('click', yourFunction, true);
或者对于现代浏览器:

window.addEventListener('click', yourFunction, {capture: true});
如果这一次也被取消,您将不得不做以下两件事中的一件或两件:

  • 使用声明内容脚本
  • 收听
    mousedown
    事件

  • 你说得对,我试过mousedown,也试过window.addEventListener,但两者都没试过。使用window.addEventListener('click',yourFunction,{capture:true});有了mousedown,效果好多了。谢谢