J'ai un élément de formulaire personnalisable sur une page d'une bibliothèque. Je souhaite connaître les événements javascript déclenchés lorsque j'interagis avec ce dernier, car je cherche à savoir quel gestionnaire d'événement utiliser.
Comment puis-je utiliser Chrome Web Developer?
De même, vous pouvez cliquer avec le bouton droit de la souris sur l'élément cible -> sélectionner "élément à inspecter". Faites défiler l'écran vers le bas, à droite du cadre de développement, en bas, se trouvent "écouteurs d'événement". Développez l'arborescence pour voir quels événements sont attachés à l'élément. Je ne suis pas sûr que cela fonctionne pour les événements gérés par le bullage (je suppose que non)
Vous pouvez utiliser la fonction monitorEvents .
Inspectez simplement votre élément (_right mouse click
_ → Inspect
sur un élément visible ou accédez à l’onglet Elements
dans Chrome Outils de développement et sélectionnez l’élément recherché), puis à l’onglet Console
et écrivez:
_monitorEvents($0)
_
Désormais, lorsque vous déplacez la souris sur cet élément, que vous l'activez ou que vous cliquez dessus, le nom de l'événement déclenché s'affiche avec ses données.
Pour ne plus avoir ces données, écrivez ceci sur la console:
_unmonitorEvents($0)
_
$0
n'est que le dernier élément DOM sélectionné par Chrome Outils de développement. Vous pouvez y passer n'importe quel autre objet DOM (par exemple, résultat de getElementById
ou querySelector
).
Vous pouvez également spécifier le "type" d'événement en tant que 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 ici .
J'ai créé un petit gif illustrant le fonctionnement de cette fonctionnalité:
Visual Event est un joli petit bookmarklet que vous pouvez utiliser pour afficher les gestionnaires d'événements d'un élément. Sur la démo en ligne peut être consulté ici .
Pour jQuery (au moins la version 1.11.2), la procédure suivante a fonctionné pour moi.
$._data(($0), 'events');
dans la 'Console'handler:
.Et il est temps d'arrêter de réinventer la roue et de commencer à utiliser les événements Vanilla JS ... :)
Cela ne montrera pas les événements personnalisés comme ceux que votre script pourrait créer s'il s'agit d'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 chrome ne vous montrera pas "Quelque chose: custom-event-one"