如何监视浏览器中发出的所有自定义事件

How can I monitor all custom events emitted in the browser?

本文关键字:事件 自定义 何监视 监视 浏览器      更新时间:2023-09-26

我想监视在Web浏览器中触发的所有自定义事件。任何标准浏览器都可以。

需要明确的是,我知道您可以附加事件处理程序以查看何时触发"常规"事件,但是我如何可靠地检测嵌入式对象或jQuery脚本是否触发了自定义事件?

我可以重构浏览器源代码以挂钩事件循环,但这似乎相当极端。

我想监控在 Web 浏览器中触发的所有自定义事件。

我认为你不能。DOM 事件模型的工作原理是为特定事件类型设置侦听器,因此如果您不知道事件的类型,则无法侦听它。没有办法监听所有事件,例如没有addEventListener('*',...)

此外,您不知道如何调用自定义事件。它们可能不会将事件调度到 DOM 中(例如,一些库实现自己的事件注册和处理系统),因此即使您可以跟踪事件的调度,也没有通用的方法知道何时调用事件侦听器。

一些库还模拟事件冒泡,但同样,除非您知道事件的类型,否则无法侦听它。

但是,您可以实现自己的事件管理系统,并实现一个函数来侦听为其设置侦听器或使用系统调度的所有事件。