https://developer.mozilla.org/en-us/docs/web/api/globaleventhandlers
如何获得GlobaleventHandlers的所有属性的列表?
具体来说,我想测试一个传递的字符串是否是GlobaleventHandlers的属性,类似于:
console.log(GlobalEventHandlers.includes('onClick')); // true
console.log(GlobalEventHandlers.includes('fizzBuzz')); // false
获取所有这些的唯一真实方法是自己构建列表,但是您可以循环循环窗口对象中的键,并寻找以on
开头的键Object.keys(window).filter(k => !k.indexOf('on'))
但这不会仅返回内置的内置。如果有人设置自定义事件侦听器,例如
window.onfoobar = function () {}
也将在结果中显示。
我写了一个为您完成的NPM软件包。
完整的用法和安装:全球事件手柄映射。
它在window
下存在的每个对象(包括window
(下提取每个全局事件处理程序。
例如,通过致电:
const getGlobalEventsHandlersMap = require('global-event-handlers-map');
const gehsMap = getGlobalEventsHandlersMap('WebSocket');
您将获得以下结果(gehsMap
将是(:
{
"WebSocket": [
"onopen",
"onerror",
"onclose",
"onmessage"
]
}
通过无参数调用getGlobalEventsHandlersMap()
,您将收到所有全局事件处理程序。
readme文件应该非常有指示性,并应帮助您了解如何从该软件包中获取所需的一切。
您可以:
在浏览器中执行代码,获取结果,并在代码中静态地使用该映射。
在代码在浏览器中运行时,将库集成在您的代码中。
最好的方法取决于您的需求,应该是您的电话。我可以帮助您了解哪种方式最适合您的方式取决于您的需求。
希望有帮助!