我想要监控在Web浏览器中触发的所有自定义事件。任何标准浏览器都可以。
要清楚,我知道您可以附加事件处理程序以查看何时触发“常规”事件,但是如何可靠地检测嵌入对象或jQuery脚本是否触发自定义事件?
我可以重构浏览器源代码以挂钩事件循环,但这似乎相当极端。
答案 0 :(得分:4)
我想监控在网络浏览器中触发的所有自定义事件。
我认为你不能。 DOM事件模型通过为特定事件类型设置侦听器来工作,因此如果您不知道事件的类型,则无法监听它。没有办法听取所有事件,例如没有addEventListener('*',...)
。
此外,您不知道如何调用自定义事件。他们可能不会将事件分派到DOM中(例如,某些库实现了他们自己的事件注册和处理系统),因此即使您可以跟踪事件的分派,也没有一般的方法知道何时调用事件侦听器。
有些库也会模拟事件冒泡,但同样,除非您知道事件的类型,否则您无法监听它。
但是,您可以实现自己的事件管理系统并实现一个函数来侦听设置了侦听器的所有事件或使用您的系统调度的事件。