我知道在JavaScript中可以像这样为自定义事件添加事件侦听器:
window.addEventListener("MyCustomEvent", myFunction, false);
但是...是否有可能列出任何时候存在的所有自定义事件?
上述代码行添加一个事件监听器,无论该事件是否存在,因此我无法指示事件是否存在。
我知道在JavaScript中可以像这样为自定义事件添加事件侦听器:
window.addEventListener("MyCustomEvent", myFunction, false);
但是...是否有可能列出任何时候存在的所有自定义事件?
上述代码行添加一个事件监听器,无论该事件是否存在,因此我无法指示事件是否存在。
通常这是一个不好的主意,但如果你确实需要这样做,你可以像这样覆盖addEventListener
函数来跟踪添加的事件:
var events = {};
var original = window.addEventListener;
window.addEventListener = function(type, listener, useCapture) {
events[type] = true;
return original(type, listener, useCapture);
};
function hasEventBeenAdded(type) {
return type in events;
}
请注意,这仅适用于在包含此代码片段后添加事件侦听器的代码。