是否可以列出创建的所有自定义事件?

Oli*_*i C 7 javascript custom-events

我知道可以将事件监听器添加到我在Javascript中创建的自定义事件,如下所示:

window.addEventListener("MyCustomEvent", myFunction, false);
Run Code Online (Sandbox Code Playgroud)

但是......是否可以列出任何时刻存在的所有自定义事件?

无论事件是否存在,上面的行都会添加一个事件监听器,因此我无法指出事件是否存在.

Ove*_*erv 8

这通常是一个坏主意,但如果你真的需要这个,你可以覆盖这样的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;
}
Run Code Online (Sandbox Code Playgroud)

请记住,这仅适用于在包含此代码之后添加事件侦听器的代码.