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

时间:2010-11-30 13:21:24

标签: javascript events dom

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

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

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

3 个答案:

答案 0 :(得分:11)

Chrome(我怀疑Safari)可以在您选择DOM中的元素时显示附加的事件侦听器,然后向下滚动右侧边栏到“事件侦听器”部分。在那里,您可以看到附加了哪些功能。

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

答案 1 :(得分:9)

在Chrome中,您可以使用getEventListeners

  1. 打开开发人员工具
  2. 选择您感兴趣的元素
  3. 键入此控制台:getEventListeners($0)
  4. 点击进入。
  5. 应返回将事件名称映射到其处理程序的对象。请注意,$0special dev tools variable,它始终指向“元素”标签中选择的最后一个元素。

答案 2 :(得分:1)

在Chrome中:

  1. 在您想要了解的元素上“检查元素”
  2. 在开发人员工具的“元素”标签中,在右侧窗格中,点击“事件监听器”
  3. 这将显示哪些事件处理程序附加到该元素。

    (Krof的答案本来可以写得更清楚。)