Я могу добавить или удалить обработчик событий для DOM node. Можно ли узнать все зарегистрированные обработчики событий для данного DOM node? Я имею в виду прямой Javascript, означающий отсутствие фреймворков или наборов инструментов, таких как jquery, dojo, Prototype, GWT и т.д. Если ответ отрицательный, то почему? Проблемы с безопасностью?
Как перечислить все зарегистрированные события DOM node с помощью Javascript?
Ответ 1
Я знаю, что это старый вопрос, но на всякий случай, для хром вы можете использовать getEventListeners
https://developers.google.com/chrome-developer-tools/docs/commandline-api#geteventlistenersobject
как указано здесь:
Ответ 2
Уровень DOM 3 определяет eventListenerList - однако я не знаю о какой-либо реализации DOM, которая поддерживает это, или о любом другом надежном способе список прослушивателей событий. Похоже, что это был недосмотр.
Ответ 3
Визуальное событие может показывать вам, какие события зарегистрированы, но работает только с присоединенными событиями уровня DOM 0; реализация W3C уровня 2, а также собственный метод Internet Explorer не поддерживаются и/или не могут быть получены.
Ответ 4
Если вам интересно узнать какое-то событие, чтобы отключить его - я пришел сюда из-за этого - я рекомендую использовать расширение Firebug с Mozilla Firefox. Выбрав интересующую вас часть документа, посмотрите на правую панель, вкладку "События": вы увидите все события и сможете даже отключить их.