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

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

大部分事件都是使用jQuery绑定的。 因此,如果只有专门监测这些事件的方法,这将特别有用。

当然,你可以用Firebug ,控制台和脚本选项卡来完成,你可以添加断点和手表,但是你希望更明智地做到这一点。

有一个名为EventBug的整洁的Firebug插件, 它只logging所有事件,并按事件types对它们进行分组,以便您可以展开并查看触发事件的types。

EventBug屏幕截图

EventBug不是实时的,你必须刷新。

另一种方法是对Firebug中的任何DOM元素使用“日志事件”function。 这确实是实时的,你也可以看到事件被触发/触发的顺序。

尝试这个:

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

这是您使用Log Events看到的内容:

在这里输入图像说明

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

正如Benvie的回答所提到的,这在webkit的开发者工具中也是可能的。

这已经在某些版本中引入了,但是在Firefox中,与元素相关的35个事件可以在Inspector中看到:在你想查看事件的元素旁边(如果有的话)会有一个带有“ EV'字母。 点击它,你会看到一个小的popup窗口,该元素的事件。

Firefox事件检查员

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

我相信这并不存在于Firebug中,而潜在的问题是在api层面缺乏支持或缺乏曝光。 或者,订阅DOM事件的方法只有几种:Element.prototype.addEventListener(和window.addEventListener和document.addEventListener和XMLHttpRequest.addEventListener以及其他一些),除了可以观察和拦截的“onevent”属性外。

但是实际上,WebKitdebugging器和Chromium的debugging器(带有额外点的webkit)允许debugging和观察附加的监听器。 有时候更容易在另一个浏览器中debugging一个浏览器的错误,即使浏览器不显示错误,也能更好地显示应用程序/运行时状态。

在这里输入图像说明

https://developers.google.com/chrome-developer-tools/docs/elements