如何在Chrome DevTools中查看触发元素的事件?
我从库中的页面上有一个可定制的表单元素。 我想看看什么JavaScript事件被激发,当我与它交互,因为我想找出哪个事件处理程序使用。
我如何使用Chrome Web Developer来做到这一点?
- 点击F12打开开发工具
- 点击Sources选项卡
- 在右侧,向下滚动到“事件监听器断点”,并展开树
- 点击你想听的事件。
- 与目标元素进行交互,如果他们触发,您将在debugging器中获得一个中断点
同样,你可以右击目标元素 – >select“检查元素”向下滚动在开发框架的右侧,底部是“事件监听器”。 展开树来查看附加到元素的事件。 不知道这是否适用于通过冒泡处理的事件(我猜不是)
你可以使用monitorEvents函数。
只要检查你的元素( right mouse click
→ Inspect
可见元素或转到Chrome开发工具中的Elements
选项卡,并select想要的元素),然后去Console
选项卡,并写:
monitorEvents($0)
现在,当你将鼠标移到这个元素上时,焦点或者点击它,被触发的事件的名字将和它的数据一起显示出来。
要停止获取这些数据,只需将其写入控制台:
unmonitorEvents($0)
$0
只是Chrome Developer Toolsselect的最后一个DOM元素。 您可以在那里传递任何其他DOM对象(例如, getElementById
或querySelector
结果)。
您还可以指定事件“type”作为第二个参数,将受监视事件的范围缩小到某个预定义集合。 例如:
monitorEvents(document.body, 'mouse')
这种可用types的列表在这里 。
我做了一个小的gif,说明了这个function的工作原理:
Visual Event是一个不错的小书签,您可以使用它来查看元素的事件处理程序。 在线演示可以在这里查看。
这不会显示像脚本可能创build的自定义事件,如果它是一个jQuery插件。 例如 :
jQuery(function($){ var ThingName="Something"; $("body a").live('click', function(Event){ var $this = $(Event.target); $this.trigger(ThingName + ":custom-event-one"); }); $.on(ThingName + ":custom-event-one", function(Event){ console.log(ThingName, "Fired Custom Event: 1", Event); }) });
Chrome开发人员工具脚本下的“事件面板”不会向您显示“某件事:自定义事件一”
对于jQuery(至less版本1.11.2)下面的程序为我工作。
- 右键单击元素并打开“Chrome开发人员工具”
- input
$._data(($0), 'events');
在“控制台” - 展开附加的对象,然后双击
handler:
值。 - 这显示了附加function的源代码,使用“search”选项卡search部分。
现在是时候停止重新发明轮子,并开始使用香草JS事件… 🙂
- 检查Chrome浏览器中的hover元素?
- 为什么Chrome开发工具将date__proto__显示为无效date?
- Chrome开发人员工具中的“覆盖”页面已在最新的Canary中
- Chrome开发者工具:查看控制台和来源视图在不同的视图/垂直平铺?
- 在Chrome开发人员面板中,是否有元素select器的键盘快捷键?
- Chrome的开发人员工具使用HTML正文说cz-shortcut-listen =“true”?
- Chrome开发工具 – 修改JavaScript和重新加载
- 如何在Chrome开发者工具中禁用JavaScript
- Chrome开发者控制台中的奇怪错误 – 无法加载资源:net :: ERR_CACHE_MISS