使用Firefox,我如何监视所有被触发的JavaScript事件?
我正在尝试debugging大量使用JavaScript事件的网页,因此我需要监视所有正在触发的JavaScript事件。
大部分事件都是使用jQuery绑定的。 因此,如果只有专门监测这些事件的方法,这将特别有用。
当然,你可以用Firebug ,控制台和脚本选项卡来完成,你可以添加断点和手表,但是你希望更明智地做到这一点。
有一个名为EventBug的整洁的Firebug插件, 它只logging所有事件,并按事件types对它们进行分组,以便您可以展开并查看触发事件的types。
EventBug不是实时的,你必须刷新。
另一种方法是对Firebug中的任何DOM元素使用“日志事件”function。 这确实是实时的,你也可以看到事件被触发/触发的顺序。
尝试这个:
- 切换打开Firebug
- 右键单击HTML选项卡中的元素,如果要查看所有事件,请右键单击
<body>
- 从上下文菜单中select
Log Events
- 确保控制台选项卡已启用
- 单击以在控制台选项卡中启用“持续”模式(否则在重新加载页面后,控制台选项卡将清除)
- 您可能必须select
Closed
(手动) - 瞧! 在控制台选项卡中观看事件stream
这是您使用Log Events看到的内容:
还值得尝试Firebug的FireQuery附加组件,以查看DOM中的哪些元素具有附加到它们的jQuery事件以及它们是什么。
正如Benvie的回答所提到的,这在webkit的开发者工具中也是可能的。
这已经在某些版本中引入了,但是在Firefox中,与元素相关的35个事件可以在Inspector中看到:在你想查看事件的元素旁边(如果有的话)会有一个带有“ EV'字母。 点击它,你会看到一个小的popup窗口,该元素的事件。
更多信息: 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