711 votes

Comment afficher les événements déclenchés sur un élément dans Chrome DevTools ?

J'ai un élément de formulaire personnalisable sur une page à partir d'une bibliothèque. Je veux voir quels événements javascript sont déclenchés lorsque j'interagis avec cet élément, car j'essaie de trouver le gestionnaire d'événements à utiliser.

Comment puis-je le faire en utilisant Chrome Web Developer ?

13 votes

Ce marque-page peut être utile : sprymedia.co.uk/article/Visual+Event+2

1 votes

La réponse ici est précieuse, mais le bookmarklet ci-dessus ^ est en fait ce qui a résolu mon problème. sprymedia.co.uk/article/Visual+Event+2

986voto

Matt Points 15107
  • Hit F12 pour ouvrir Dev Tools
  • Cliquez sur l'onglet Sources
  • Sur le côté droit, faites défiler jusqu'à "Event Listener Breakpoints", et développez l'arbre.
  • Cliquez sur les événements que vous voulez écouter.
  • Interagissez avec l'élément cible, s'ils tirent, vous obtiendrez un point d'arrêt dans le débogueur.

De la même manière, vous pouvez cliquer avec le bouton droit de la souris sur l'élément cible -> sélectionner "inspecter l'élément". Faites défiler l'arborescence sur le côté droit du cadre de développement, en bas se trouve "event listeners". Développez l'arbre pour voir quels événements sont attachés à l'élément. Je ne sais pas si cela fonctionne pour les événements qui sont gérés par les bulles (je suppose que non).

11 votes

Cette solution pose un problème si vous recherchez des événements de souris, car le point d'arrêt interrompt le flux.

76 votes

Et si tous les événements pointent vers un jquery minifié dont je ne me soucie pas, comment puis-je atteindre la fonction qui utilise ce jquery ?

20 votes

Peut-il afficher les événements personnalisés que j'ai créés ? Quand j'ai lu qu'il avait changé des vies, c'est la première chose à laquelle j'ai pensé. Est-ce que j'ai raté quelque chose ?

960voto

Mariusz Pawelski Points 857

Vous pouvez utiliser monitorEvents fonction.

Il suffit d'inspecter votre élément ( right mouse click Inspect sur l'élément visible ou aller à Elements dans Chrome Developer Tools et sélectionnez l'élément recherché), puis allez à Console onglet et écrire :

monitorEvents($0)

Maintenant, lorsque vous passez la souris sur cet élément, que vous le mettez en évidence ou que vous cliquez dessus, le nom de l'événement déclenché s'affiche avec ses données.

Pour ne plus recevoir ces données, écrivez simplement ceci dans la console :

unmonitorEvents($0)

$0 est juste le dernier élément DOM sélectionné par Chrome Developer Tools. Vous pouvez y passer n'importe quel autre objet DOM (par exemple le résultat de getElementById o querySelector ).

Vous pouvez également spécifier le "type" d'événement comme second paramètre pour limiter les événements surveillés à un ensemble prédéfini. Par exemple :

monitorEvents(document.body, 'mouse')

La liste de ces types disponibles est la suivante aquí .

J'ai réalisé un petit gif qui illustre le fonctionnement de cette fonctionnalité :

usage of monitorEvents function

4 votes

Je suis d'accord. C'est le moyen de facto de surveiller et de suivre les événements sur spécifique éléments.

1 votes

Est-ce que ça marche encore ? J'obtiens "undefined" dans la console lorsque je tape ceci et aucun contrôle ne semble se produire.

1 votes

Ah oui, je vois. C'est le "undefined" qui m'a dérouté, mais je vois maintenant que vous avez la même chose dans votre GIF animé. Merci.

31voto

arwan Points 62

Événement visuel est un joli petit bookmarklet que vous pouvez utiliser pour afficher les gestionnaires d'événements d'un élément. Une démo en ligne peut être consultée aquí .

25voto

Daniel Sokolowski Points 2207

Pour jQuery (au moins la version 1.11.2), la procédure suivante a fonctionné pour moi.

  1. Cliquez à droite sur l'élément et ouvrez "Chrome Developer Tools".
  2. Type $._data(($0), 'events'); dans la "Console".
  3. Développez les objets joints et double-cliquez sur le handler: valeur.
  4. Ceci montre le code source de la fonction jointe, recherchez une partie de celui-ci en utilisant l'onglet 'Recherche'.

Et il est temps d'arrêter de réinventer la roue et de commencer à utiliser les événements JS classiques... :)

how-to-find-jquery-click-handler-function

3 votes

J'essaie de le faire dans 2021 et je n'obtiens que 'undefined' dans la sortie de la console lorsque j'essaie cette syntaxe. Avez-vous une idée ? Je n'arrive toujours pas à trouver comment voir quels événements jQuery personnalisés sont liés à un élément particulier :(

16voto

airtonix Points 1048

Cela ne montrera pas les événements personnalisés comme ceux que votre script pourrait créer si c'est un plugin jquery. par exemple :

jQuery(function($){
 var ThingName="Something";

 $("body a").live('click', function(Event){
   var $this = $(Event.target);
       $this.trigger(ThingName + ":custom-event-one");
 });

 $.on(ThingName + ":custom-event-one", function(Event){
   console.log(ThingName, "Fired Custom Event: 1", Event);
 })

});

Le panneau d'événements sous Scripts dans les outils de développement de chrome ne vous montrera pas "Something:custom-event-one".

31 votes

Comment, alors, trouver ces événements ?

10 votes

Dans Chrome soviétique, ces événements vous trouvent

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X