Можно ли перечислить все созданные пользовательские события?
Я знаю, что можно добавить прослушиватель событий к пользовательскому событию, которое я создал в 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;
}
Имейте в виду, что это будет работать только для кода, который добавляет прослушиватели событий после включения этого фрагмента кода.