是由在主页面上下文中传播的Chrome扩展触发的DOM事件

Are DOM events triggered from a Chrome extension propagated in the main page’s context?

本文关键字:扩展 Chrome 事件 DOM 传播 主页 上下文      更新时间:2023-09-26

我正在尝试编写一个Chrome扩展,以编程方式将点击事件发送到页面上的特定链接。这个特定的链接在页面上有已知的点击事件处理程序,我可以通过Chrome的web检查器看到。

我在Chrome扩展的content_page脚本中用jQuery .click()发送这个点击事件,但看起来处理程序没有启动。当控制台记录jQuery .click()调用的结果时,我可以看到预期的返回值正在返回,所以我知道这段代码实际上正在运行。Ch

我知道这个jQuery代码是有效的,因为我可以将同一行粘贴到该页面的Chrome控制台中,并获得我期望的结果。

我疯狂地认为我可以从扩展的content_page触发DOM事件吗?我知道content_page在一个单独的环境中执行,但我非常确信触发的DOM事件在这两个环境中都是冒泡的。

(如果我不是疯了,你会如何进行调试?)

答案是YES–点击事件确实传播,但当我用jQuery将.click()发送到的DOM元素作为目标时,会发生一些奇怪的事情,但它在使用getElementsByClassName()等原生DOM遍历函数时有效。

解决之谜:只需使用vanillaJS方法在DOM元素本身上调用click(),而不是使用jQuery封装的版本。