Можно ли перечислить все созданные пользовательские события?

Я знаю, что можно добавить прослушиватель событий к пользовательскому событию, которое я создал в Javascript, например так:

window.addEventListener("MyCustomEvent", myFunction, false);

Но... Можно ли перечислить все пользовательские события, которые существуют в любой точке?

Приведенная выше строка добавляет прослушиватель событий независимо от того, существует событие или нет, поэтому я не могу указать, существует событие или нет.

1 ответ

Как правило, это плохая идея, но если вам действительно это нужно, вы можете переопределить 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;
}

Имейте в виду, что это будет работать только для кода, который добавляет прослушиватели событий после включения этого фрагмента кода.

Другие вопросы по тегам