什么事件处理程序附加到DOM节点 - 如何查找?

Pis*_*3.0 12 javascript events dom

有没有办法找到哪些事件处理程序附加到给定的DOM节点?

例如,当您单击"添加注释"链接时,会附加一个事件处理程序,其中显示注释表单.现在,如果我有一个DOM文档(一个网页),并希望列出一个特定节点的所有事件处理程序,有没有办法做到这一点?

(我怀疑JS在页面内运行是不可能的; FF中的浏览器扩展是否可以访问这些数据?)

Kle*_*vič 11

当您在DOM中选择一个元素然后向右下移到"事件监听器"部分时,Chrome(我怀疑Safari)可以显示附加的事件监听器.在那里,您可以看到附加了哪些功能.

我目前没有Firebug的副本,但我怀疑DOM标签在Firefox中也显示类似的信息.


Xav*_*avi 9

在Chrome中,您可以使用getEventListeners.

  1. 打开开发者工具
  2. 选择您感兴趣的元素
  3. 键入以下控制台: getEventListeners($0)
  4. 点击进入.

应返回将事件名称映射到其处理程序的对象.请注意,这$0是一个特殊的开发工具变量,它始终指向"元素"选项卡中选择的最后一个元素.