【问题标题】:How can I monitor focus events in Chrome?如何在 Chrome 中监控焦点事件?
【发布时间】:2020-04-10 03:53:06
【问题描述】:

我正在尝试跟踪哪个元素在网络应用程序中获得焦点。我遇到了monitorEvents API,但我很难将它用于controlfocus 事件。 body 上的其他事件按预期工作,但 control 事件没有。有什么建议吗?

【问题讨论】:

标签: google-chrome google-chrome-devtools


【解决方案1】:

我不确定您究竟想如何“监控”control 事件,但您可以在整个类别或单个事件(如 focus)上设置 event listener breakpoints。每当为页面上的任何节点运行 focus 侦听器时,DevTools 都会在侦听器的第一行暂停。

【讨论】:

  • 当 devtools 在焦点事件上中断时,焦点会发生变化,这让我几乎无法进行调试。我不确定这在什么情况下会有用。
【解决方案2】:

我今天试图监控整个文档的焦点和模糊事件。 当使用monitorEvents(document.body, 'control') 时,我只会在我完全离开选项卡然后重新聚焦时看到触发的事件。我相信正在发生的事情是,一旦你专注于身体,当你专注于子元素时它永远不会改变,因为听众处于高水平并且事件只是冒泡到身体而没有改变焦点。

我尝试监控一些特定子元素上的事件,发现这些事件触发了我的预期。所以我决定为文档中的每个元素添加一个事件监听器,效果很好。这是唯一的方法。

document.querySelectorAll("*").forEach((el)=> monitorEvents(el, 'control'))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-26
    • 1970-01-01
    • 1970-01-01
    • 2013-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多