J'ai déjà examiné ces questions:
- Comment trouver des écouteurs d'événements sur un nœud DOM lors du débogage ou à partir du code JavaScript?
- puis-je examiner et modifier par programme les gestionnaires d'événements Javascript sur des éléments html?
- Comment déboguer les liaisons d'événements JavaScript / jQuery avec Firebug (ou un outil similaire)
cependant aucun d'entre eux ne répond comment obtenir une liste d'écouteurs d'événements attachés à un nœud en utilisant addEventListener
, sans modifier le addEventListener
prototype avant la création des écouteurs d'événements.
VisualEvent n'affiche pas tous les écouteurs d'événements (spécifiques à l'iphone) et je veux le faire (un peu) par programme.
javascript
dom-events
Tyilo
la source
la source
Réponses:
Chrome DevTools, Safari Inspector et Firebug prennent en charge getEventListeners (nœud) .
la source
Vous ne pouvez pas.
La seule façon d'obtenir une liste de tous les écouteurs d'événements attachés à un nœud est d'intercepter l'appel de pièce jointe d'écouteur.
DOM4 addEventListener
Dit
Cela signifie qu'un écouteur d'événements est ajouté à la "liste des écouteurs d'événements". C'est tout. Il n'y a aucune notion de ce que devrait être cette liste ni de la façon dont vous devriez y accéder.
la source
Puisqu'il n'y a pas de moyen natif de le faire, voici la solution moins intrusive que j'ai trouvée (n'ajoutez aucune méthode de prototype `` ancienne ''):
la source
Vous pouvez obtenir tous les événements jQuery en utilisant $ ._ data ($ ('[selector]') [0], 'events'); changez le [sélecteur] en fonction de vos besoins.
Il existe un plugin qui rassemble tous les événements attachés par jQuery appelé eventsReport.
J'écris également mon propre plugin qui le fait avec un meilleur formatage.
Mais de toute façon, il semble que nous ne pouvons pas rassembler les événements ajoutés par la méthode addEventListener. Peut-être pouvons-nous encapsuler l'appel addEventListener pour stocker les événements ajoutés après notre appel wrap.
Cela semble être le meilleur moyen de voir les événements ajoutés à un élément avec des outils de développement.
Mais vous n'y verrez pas d'événements délégués. Nous avons donc besoin de jQuery eventsReport.
MISE À JOUR: NOW Nous POUVONS voir les événements ajoutés par la méthode addEventListener VOIR LA BONNE RÉPONSE À CETTE QUESTION.
la source
Je ne trouve pas de moyen de le faire avec du code, mais dans Firefox 64, les événements sont répertoriés à côté de chaque entité HTML dans l'inspecteur des outils de développement, comme indiqué sur la page Examiner les écouteurs d'événements de MDN et comme illustré dans cette image:
la source