Должна быть возможность обнаруживать обработчики событий, подключенные с использованием <element>.addEventListener()
, перехватывая вызовы функции:
var myListOfAddedEvents = [];
var realAddEventListener = HTMLElement.prototype.addEventListener;
HTMLElement.prototype.addEventListener = function(evtType,fn,cap) {
myListOfAddedEvents.push(
{on: this, type: evtType, handler: fn, capture: cap}
);
return realAddEventListener.apply(this, arguments);
};
Примечание. Это непроверенный код, который может потребовать некоторой работы. Я надеюсь, эта же функция будет использоваться всеми типами элементов, но я могу ошибаться. Также это будет работать, только если вы сможете запустить этот бит кода до того, как начнут добавлять события. Копия для attachEvent может быть создана аналогично.