使用Firefox,我如何监控所有被触发的JavaScript事件?

gsh*_*arp 45 javascript jquery firefox-addon javascript-debugger jquery-events

我正在尝试调试大量使用JavaScript事件的网页,因此我需要监视所有被触发的JavaScript事件.

大多数事件都是使用jQuery绑定的.因此,如果有一种方法可以专门监控那些事件,那将特别有用.

Moi*_*man 51

当然,你可以使用Firebug,控制台和脚本选项卡做得很好,你可以在其中添加断点和手表,但是你想要更聪明/更容易地做到这一点.

有一个名为EventBug的简洁Firebug插件,它只记录所有事件并按事件类型对它们进行分组,以便您可以展开并查看触发它们的内容.

EventBug截图

EventBug没有实时做,你必须刷新.

另一种方法是对Firebug中的任何DOM元素使用"日志事件"功能.这确实可以实时完成,您可以查看触发/触发的订单事件.

试试这个:

  • 切换打开的Firebug
  • 右键单击HTML选项卡中的元素,如果要查看所有事件,请单击鼠标右键 <body>
  • 选择Log Events从上下文菜单
  • 确保已启用"控制台"选项卡
  • 单击以在"控制台"选项卡中启用"持久"模式(否则在重新加载页面后,"控制台"选项卡将清除)
  • 您可能必须选择Closed(手动)
  • 瞧!在控制台选项卡中监视事件流

这是您在日志事件中看到的内容:

在此输入图像描述

还值得为Firebug 尝试FireQuery附加组件,以查看DOM中的哪些元素附加了jQuery事件以及它们是什么.

正如benvie的回答所提到的,这也可以在webkit的开发人员工具中实现.

  • 这个答案已经过时了。Firebug 此后已被纳入开发者工具中。 (3认同)

Dom*_*omi 13

[2023服]

Event Listener Breakpoints已在 FF 69 中引入(并在 FF 71 中进一步改进)。相关文档在这里

它允许您自动中断给定类型的任何事件事件侦听器。此屏幕截图(来自文章)显示了它如何在Keyboard事件中崩溃:

在此输入图像描述

本文进一步解释了 (1) 如何不必每次都中断,而是只log匹配事件,以及 (2) 如何对某些源进行黑箱处理,以避免费力地浏览框架代码的内部(例如jqueryreact等等)。

他们提供了另一个屏幕截图:

在此输入图像描述


Axe*_*ect 11

这在一些版本之前已经介绍过,但是从Firefox 35开始,可以在Inspector上看到与元素关联的事件:在要查看事件的元素旁边(如果有的话),将会有一个带有'的图标' EV'字母.单击它,您将看到一个小弹出窗口,其中包含该元素的事件.

Firefox事件检查员

更多信息:http://flailingmonkey.com/view-dom-events-in-firefox-developer-tools/

  • 这很酷,但我需要“看到”的是触发了什么事件。这也可能吗? (3认同)