2010-11-30 4 views
10

Existe-t-il un moyen de trouver quels gestionnaires d'événements sont attachés à un nœud DOM donné? Par exemple, lorsque vous cliquez sur le lien "Ajouter un commentaire", un gestionnaire d'événements est associé au formulaire de commentaire. Maintenant, si j'ai un document DOM (une page web), et que je veux lister tous les gestionnaires d'événements pour un nœud spécifique, y a-t-il un moyen de le faire?Quels gestionnaires d'événements sont attachés à un nœud DOM - comment trouver?

(je soupçonne que ce n'est pas possible de JS en cours d'exécution dans la page, faire des extensions de navigateur FF ont accès à ces données?)

+0

Jetez un oeil à cette question: http://stackoverflow.com/questions/446892/how-to-find-event-listeners-on-a-dom-node – McStretch

+0

@McStretch: Utile, merci. N'a pas trouvé cela avant, votant pour fermer ce comme doublon. – Piskvor

Répondre

10

Chrome (et je soupçonne que Safari) peut montrer écouteurs d'événement lorsque vous sélectionnez une élément dans le DOM, puis faites défiler la barre latérale droite vers la section Auditeurs d'événement. Là, vous pouvez voir quelles fonctions sont attachées.

Je n'ai pas de copie de Firebug pour l'instant, mais je suspecte que l'onglet DOM affiche également des informations similaires dans Firefox.

+0

En effet il y a, merci (dans Chrome c'est, FBug 1.6 ne l'a pas). – Piskvor

+1

@Piskvor: Firebug a une extension appelée [Eventbug] (http://www.softwareishard.com/blog/firebug/eventbug-alpha-released/) qui fournit des fonctionnalités similaires. –

+0

@Erik Hesselink: Merci, ça a l'air utile! – Piskvor

1

En Chrome:

  1. « Inspecter l'élément » sur l'élément que vous voulez savoir sur
  2. Dans l'onglet « Eléments » dans les outils de développement, dans le volet de droite, cliquez sur « écouteurs d'événements "

Cela vous montrera quels gestionnaires d'événements sont attachés à cet élément.

(réponse de Krof aurait pu être plus clairement écrit.)

8

Dans Chrome, vous pouvez utiliser getEventListeners.

  1. outils Open Developer
  2. Sélectionnez l'élément que vous êtes intéressé par
  3. Type de cette console: getEventListeners($0)
  4. Appuyez sur Entrée.

Un nom d'événement de mappage d'objet vers ses gestionnaires doit être renvoyé. Notez que $0 est un special dev tools variable qui pointe toujours vers le dernier élément sélectionné dans les onglets "Eléments".

+0

La réponse diffère de celle affichée par l'onglet Auditeurs de l'événement. Pourquoi? – UserControl

+0

Hmm, c'est une bonne question. Je n'ai aucune idée. – Xavi

Questions connexes