我在一个页面上使用了一个可定制的表单元素,该元素来自于一个库。由于我正在尝试找到要使用的事件处理程序,因此我想查看与之交互时触发的JavaScript事件。
我如何使用Chrome Web开发者工具实现这一点?
我在一个页面上使用了一个可定制的表单元素,该元素来自于一个库。由于我正在尝试找到要使用的事件处理程序,因此我想查看与之交互时触发的JavaScript事件。
我如何使用Chrome Web开发者工具实现这一点?
您可以使用monitorEvents函数。
只需检查您的元素(在可见元素上单击鼠标右键→选择检查
或转到Chrome开发者工具中的元素
选项卡并选择想要的元素),然后转到控制台
选项卡并输入:
monitorEvents($0)
当您将鼠标移动到此元素上方、聚焦或点击它时,触发的事件名称将与其数据一起显示。
要停止获取此数据,只需将以下内容写入控制台:
unmonitorEvents($0)
$0
是由 Chrome 开发者工具选择的最后一个 DOM 元素。您可以将任何其他 DOM 对象传递到该位置(例如 getElementById
或 querySelector
的结果)。
您还可以将事件“类型”指定为第二个参数,以将监视的事件缩小到一些预定义的集合。例如:
monitorEvents(document.body, 'mouse')
截至2023-01-30,可用类型列表如下:
引自这里。
我制作了一个小 gif,演示了该功能的使用:
MouseEvent
的哪个属性来查找?请给出指导。 - Utku类似地,您可以右键单击目标元素 -> 选择“检查元素” 在开发框架的右侧向下滚动,在底部是“事件监听器”。展开树形结构以查看哪些事件附加到该元素。不确定是否适用于通过冒泡处理的事件(我猜可能不适用)
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开发者工具中Scripts下的Event面板不会显示"Something:custom-event-one"
要在Chrome浏览器中列出窗口对象上的所有事件处理程序,您可以键入window.getEventListeners(window)
或针对特定元素window.getEventListeners(document.body)