Ya he mirado estas preguntas:
- ¿Cómo encontrar detectores de eventos en un nodo DOM al depurar o desde el código JavaScript?
- ¿Puedo examinar y modificar programáticamente los controladores de eventos de Javascript en elementos html?
- Cómo depurar enlaces de eventos de JavaScript / jQuery con Firebug (o una herramienta similar)
sin embargo, ninguno de ellos responde cómo obtener una lista de oyentes de eventos adjuntos a un nodo utilizando addEventListener
, sin modificar el addEventListener
prototipo antes de que se creen los oyentes de eventos.
VisualEvent no muestra todos los oyentes de eventos (los específicos de iPhone) y quiero hacer esto (algo) programáticamente.
javascript
dom-events
Tyilo
fuente
fuente
Respuestas:
Chrome DevTools, Safari Inspector y Firebug son compatibles con getEventListeners (nodo) .
fuente
No puedes.
La única forma de obtener una lista de todos los detectores de eventos adjuntos a un nodo es interceptar la llamada del adjunto del detector.
DOM4 addEventListener
Dice
Lo que significa que se agrega un detector de eventos a la "lista de detectores de eventos". Eso es todo. No hay noción de qué debería ser esta lista ni cómo debería acceder a ella.
fuente
Dado que no hay una forma nativa de hacer esto, aquí hay una solución menos intrusiva que encontré (no agregue ningún método de prototipo 'antiguo'):
fuente
Puede obtener todos los eventos de jQuery usando $ ._ data ($ ('[selector]') [0], 'events'); cambie [selector] a lo que necesite.
Hay un complemento que recopila todos los eventos adjuntos por jQuery llamado eventsReport.
También escribo mi propio complemento que hace esto con un mejor formato.
Pero de todos modos, parece que no podemos recopilar eventos agregados por el método addEventListener. Puede ser que podamos envolver la llamada addEventListener para almacenar eventos agregados después de nuestra llamada de cierre.
Parece la mejor manera de ver eventos agregados a un elemento con herramientas de desarrollo.
Pero no verá eventos delegados allí. Entonces, necesitamos jQuery eventsReport.
ACTUALIZACIÓN: AHORA PODEMOS ver eventos agregados por el método addEventListener VER RESPUESTA CORRECTA A ESTA PREGUNTA.
fuente
No puedo encontrar una manera de hacer esto con el código, pero en Firefox 64, los eventos se enumeran junto a cada entidad HTML en el Inspector de herramientas para desarrolladores, como se indica en la página Examinar oyentes de eventos de MDN y como se muestra en esta imagen:
fuente