ejemplos - eventos javascript
Cómo encontrar detectores de eventos en un nodo DOM usando JavaScript (4)
Console of Chrome tiene un método que puede ayudarlo a verificar si un nodo dom tiene algún detector de eventos registrado, por ejemplo, para verificar los escuchas de eventos asociados al uso del nodo de documento:
https://developers.google.com/chrome-developer-tools/docs/commandline-api#geteventlistenersobject
getEventListeners(document);
Podrías iterar recursivamente en todos los nodos dom y encontrar todos los controladores de eventos adjuntos si es necesario.
Todavía no puedo creer que esto no sea posible, pero hay una manera de recorrer el dom y ver todos los controladores de eventos adjuntos usando ''addEventListener''. Este post y muchos otros dicen que no.
Si ese es el caso, entonces, ¿cómo las aplicaciones, como el inspector de Chrome o Firebug, las muestran? Supongo que probablemente aumenten los métodos del dom de alguna manera para que puedan rastrear lo que está siendo vinculado.
En la consola de Chrome v53 probé:
getEventListeners (documento);
que devuelve:
__proto__: objeto
y sub elementos, no lo que estoy buscando.
Así que he intentado:
getEventListeners (ventana);
que vuelve
Objeto {antes de descargar: Array [1], cargar: Array [1]}
Eso es lo que estoy buscando. Así que creo que el enfoque correcto es el Robin como a la manera de las aves:
getEventListeners (myDomElement):
donde myDomElement es el objeto apuntado que se obtiene con formas estándar como getElementById, etc.
Por supuesto, los navegadores tienen una lista de escuchas de eventos, pero no están expuestos a JavaScript a nivel de página. Por ejemplo, Firebug (o Eventbug ) probablemente use nsIEventListenerInfo .
Dicho esto, esta vieja respuesta sigue siendo válida:
¿Cómo encontrar detectores de eventos en un nodo DOM?
use la siguiente función para obtener el json de los eventos registrados;
getEventListeners (node_name); donde nombre_nodo puede ser un nombre de elemento o su id.