首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript事件日志

JavaScript事件日志
EN

Stack Overflow用户
提问于 2019-08-20 16:35:35
回答 6查看 4K关注 0票数 3

有没有办法查看JS正在执行哪些事件。

例如,假设我有一个正在触发的单击事件,然后keypress...Now我想要这些触发事件的日志。

有没有办法获得这样的触发事件日志(可能带有函数名,但这是可选的)?

编辑:我想我需要添加一个细节。我想记录所有事件。如果有一些我不知道的自定义事件,我想知道它的名称。因此,我不能只监视我知道的某些事件,也不能监视那些我不知道的事件。

编辑2:日志应仅包含附加了特定侦听器的元素的事件。例如通过$('#test-element').on(...)testElement.addEventListener(...)。同样,事件的名称是未知的(不必是click/keypress/...)。

EN

回答 6

Stack Overflow用户

发布于 2019-08-20 16:48:38

Chrome提出了一个你可以使用的监控功能:monitorEvents

如果我没记错的话,下面的javascript行应该会记录所有内容:

代码语言:javascript
复制
monitorEvents(document);

如果只想观看特定事件,可以使用第二个参数:

代码语言:javascript
复制
monitorEvents(document, 'click');

当然,您可以自由地将文档替换为您想要查看的任何对象。

票数 2
EN

Stack Overflow用户

发布于 2019-08-20 16:49:23

用你想要附加的listners填充Array,然后记录它们的类型;

代码语言:javascript
复制
['click','onkeypress'].forEach( evt => 
        element.addEventListener(evt, log, false)
);

log = (event) => {
    console.log(event.type)
}
票数 2
EN

Stack Overflow用户

发布于 2019-08-20 16:47:52

要在单击时记录事件(将窗口替换为确切的事件目标):

代码语言:javascript
复制
window.addEventListener("click", () => {
    console.log("Element clicked?");
  });

要记录enter keypress,请执行以下操作:

代码语言:javascript
复制
window.addEventListener('keypress', e => {
    let key = e.which || e.keyCode;
    if (key === 13) { // 13 is enter. you may use other numbers for other keys
     console.log('Enter pressed');
   }
});

要记录所有事件,请使用以下数组:

代码语言:javascript
复制
['click','mouseover', 'keypress'].forEach(ev => {
    window.addEventListener(ev, () => {
        console.log('event:', ev)
    })
})

可用事件列表:

https://developer.mozilla.org/en-US/docs/Web/Events

可以在浏览器控制台(F12)中查看日志

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57569678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档