2010-11-30 81 views
10

有没有办法找到哪些事件处理程序连接到给定的DOM节点?哪些事件处理程序附加到DOM节点 - 如何查找?

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

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

+0

看看这个问题:http://stackoverflow.com/questions/446892/how-to-find-event-listeners-on-a-dom-node – McStretch 2010-11-30 13:25:10

+0

@McStretch:有用,谢谢。没有发现之前,投票结束这个重复。 – Piskvor 2010-11-30 13:42:38

回答

10

铬(我怀疑Safari浏览器)可显示附加事件监听器,当你选择元素,然后向下滚动右边栏到事件监听器部分。在那里,你可以看到附加的功能。

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

+0

确实有,谢谢(在Chrome中,FBug 1.6没有它)。 – Piskvor 2010-11-30 14:13:48

1

在Chrome中:

  1. 你想了解
  2. 在“元素”选项卡中的开发者工具,在右侧窗格中的元素的“检查元素”,点击“事件监听器“

这将告诉你什么事件处理程序附加到该元素。

(Krof的答案可能已经更清楚地写。)

8

在Chrome中,你可以使用getEventListeners

  1. 开放开发工具
  2. 选择你感兴趣的
  3. 键入此控制台的元素:getEventListeners($0)
  4. 回车。

应该返回一个将事件名称映射到其处理程序的对象。请注意,$0是一个special dev tools variable,它始终指向“元素”选项卡中选定的最后一个元素。

相关问题