717

我在图书馆的页面上有一个可自定义的表单元素。我想看看当我与它交互时会触发哪些 javascript 事件,因为我试图找出要使用的事件处理程序。

如何使用 Chrome Web Developer 做到这一点?

4

5 回答 5

992
  • 点击F12打开开发工具
  • 单击源选项卡
  • 在右侧,向下滚动到“事件侦听器断点”,然后展开树
  • 单击要收听的事件。
  • 与目标元素交互,如果它们触发,您将在调试器中获得一个断点

同样,您可以右键单击目标元素->选择“检查元素”在开发框架的右侧向下滚动,底部是“事件侦听器”。展开树以查看附加到元素的事件。不确定这是否适用于通过冒泡处理的事件(我猜不是)

于 2012-04-18T16:29:12.267 回答
975

您可以使用monitorEvents功能。

只需检查您的元素(right mouse clickInspect在可见元素上或转到ElementsChrome 开发人员工具中的选项卡并选择想要的元素)然后转到Console选项卡并编写:

monitorEvents($0)

现在,当您将鼠标移到该元素上、聚焦或单击它时,触发事件的名称将与其数据一起显示。

要停止获取此数据,只需将其写入控制台:

unmonitorEvents($0)

$0只是 Chrome 开发者工具选择的最后一个 DOM 元素。您可以在那里传递任何其他 DOM 对象(例如getElementByIdor的结果querySelector)。

您还可以将事件“类型”指定为第二个参数,以将监控的事件范围缩小到一些预定义的集合。例如:

monitorEvents(document.body, 'mouse')

此可用类型的列表在这里

我制作了一个小 gif 来说明此功能的工作原理:

monitorEvents函数的使用

于 2013-04-10T10:50:36.873 回答
31

Visual Event是一个不错的小书签,可用于查看元素的事件处理程序。在线演示可以在这里查看。

于 2014-03-21T20:12:51.467 回答
26

对于 jQuery(至少版本 1.11.2),以下过程对我有用。

  1. 右键单击该元素并打开“Chrome 开发人员工具”
  2. 输入$._data(($0), 'events');“控制台”
  3. 展开附加对象并双击该handler:值。
  4. 这显示了附加函数的源代码,使用“搜索”选项卡搜索其中的一部分。

现在是时候停止重新发明轮子并开始使用香草 JS 事件了...... :)

如何找到-jquery-click-handler-function

于 2016-07-14T15:11:53.707 回答
16

如果它是 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 开发者工具中脚本下的事件面板不会显示“Something:custom-event-one”

于 2012-07-15T23:42:22.130 回答