2010-08-18 19 views
19

Par exemple, il y a un bouton. Il est enveloppé par <div>.Comment déboguer les événements JAVASCRIPT? Ou comment faire toutes les fonctions appellent trace?

En appuyant sur ce bouton, il y a appel de fonction javascript, puis une autre fonction, puis appel par ajax au serveur et si c'est OK, javascript redirigeant cette page vers une autre page.

Il est difficile de déboguer.

Est-il possible de "attraper" cet événement? C'est à dire. savoir, quelle fonction est appelée après le clic sur le bouton? Le bouton n'a pas d'attribut "onclick", c'est-à-dire que l'écouteur d'événement est connecté en javascript.

Et si ce n'est pas possible alors est-il possible de faire la trace? C'est à regarder toutes les fonctions appels, qui est appelé après?

Il serait mieux visuellement, bien que dans textuelle est également bon :)

Merci pour les réponses!

Répondre

23

Ouais - ce genre de chose n'est pas aussi simple que vous le voudriez.

Google Chrome dispose d'un panneau "Event Listeners". Cliquez avec le bouton droit sur votre bouton, puis sélectionnez "Inspecter l'élément". Assurez-vous que l'élément correct est sélectionné, puis vérifiez le panneau "Auditeurs d'événements" sur la droite.

Vous pouvez également utiliser le mot-clé "débogueur" pour définir un point d'arrêt dans la pile d'appel quelque part. Ensuite, utilisez votre débogueur javascript préféré (outils de développement intégrés dans Safari, Google Chrome & IE8, firebug pour Firefox). Dans chacun d'entre eux, il y a une pile d'appels qui vous permettra de naviguer dans la pile d'appels en cours.

+0

Que faire si l'élément n'est pas visible ou ne fait pas partie du DOM? –

0

Vous pouvez utiliser firebug pour tracer le code javascript. Son plugin de Firefox permet de tracer les styles (css), js et permet également d'éditer.

Opera fournit dragonfly qui est similaire à Firebug

-1

Découvrez les fonctions de débogage dans Firebug, il va vous permettre d'ajouter des points d'arrêt JavaScript et entrez dans votre code.

+2

Cela ne répond pas non plus à la question. – antinome