Solution 1 : Mise en boîte noire du cadre
Fonctionne très bien, configuration minimale et pas de tierce partie.
Selon Documentation de Chrome :
Que se passe-t-il lorsque l'on met en boîte noire un script ?
Exceptions lancées par le code de la bibliothèque ne fera pas de pause (si la fonction Pause sur exceptions est activée), l'entrée, la sortie et le passage en revue de la bibliothèque code de la bibliothèque, les points d'arrêt de l'écouteur d'événements n'interviennent pas dans le code de la bibliothèque. débogueur ne fera pas de pause sur les points d'arrêt définis dans le code de la bibliothèque. Le site résultat final est vous déboguez le code de votre application au lieu de ressources ressources de tiers.
Voici le flux de travail mis à jour :
- Ouvrez les outils de développement de Chrome ( F12 o + + i ), allez dans les paramètres (en haut à droite, ou F1 ). Trouvez un onglet sur la gauche appelé " Blackboxing "
- C'est là que vous mettez le RegEx le motif des fichiers que vous voulez que Chrome ignore pendant le débogage. Par exemple :
jquery\..*\.js
(modèle global/ humain la traduction : jquery.*.js
)
- Si vous voulez ignorer les fichiers avec motifs multiples vous pouvez les ajouter en utilisant le caractère pipe,
|
comme ça : jquery\..*\.js|include\.postload\.js
(qui agit comme un "ou ce modèle", pour ainsi dire. Ou continuez à les ajouter avec le bouton "Ajouter".
- Maintenant, continuez à Solution 3 décrite ci-dessous.
Conseil bonus ! J'utilise Regex101 régulièrement (mais il y en a beaucoup d'autres : ) pour tester rapidement mes modèles de regex rouillés et trouver où je me trompe avec le débogueur de regex pas à pas. Si vous ne maîtrisez pas encore les expressions régulières, je vous recommande de commencer à utiliser des sites qui vous aident à les écrire et à les visualiser, tels que http://buildregex.com/ y https://www.debuggex.com/
Vous pouvez également utiliser le menu contextuel lorsque vous travaillez dans le panneau "Sources". Lorsque vous visualisez un fichier, vous pouvez faire un clic droit dans l'éditeur et choisir Blackbox script. Cela ajoutera le fichier à la liste du panneau Paramètres :
Solution 2 : Événement visuel
C'est un excellent outil à avoir :
Visual Event est un bookmarklet Javascript open-source qui fournit des informations de débogage sur les événements attachés au DOM. des informations de débogage sur les événements qui ont été attachés à des éléments DOM éléments. Visual Event montre :
- Quels sont les éléments auxquels sont associés des événements ?
- Le type d'événements attachés à un élément
- Le code qui sera exécuté lorsque l'événement est déclenché
- Le fichier source et le numéro de ligne où la fonction jointe a été définie (navigateurs Webkit et Opera uniquement).
Solution 3 : Débogage
Vous pouvez mettre le code en pause lorsque vous cliquez quelque part dans la page, ou lorsque le DOM est modifié... et autres types de points d'arrêt JS qu'il sera utile de connaître. Vous devez appliquer boîte noire ici pour éviter un cauchemar.
Dans ce cas, je veux savoir ce qui se passe exactement lorsque je clique sur le bouton.
-
Ouvrez Dev Tools -> onglet Sources, et sur la droite trouvez Event Listener Breakpoints
:
-
Développez Mouse
et sélectionnez click
-
Cliquez maintenant sur l'élément (l'exécution doit s'interrompre), et vous êtes maintenant en train de déboguer le code. Vous pouvez parcourir tout le code en appuyant sur F11 (qui est Entrer ). Ou reculez de quelques sauts dans la pile. Il peut y avoir un une tonne de sauts
Solution 4 : Mots clés de la pêche
Lorsque Dev Tools est activé, vous pouvez effectuer une recherche dans l'ensemble de la base de code (tout le code dans tous les fichiers) avec + + F ou :
et la recherche #envio
ou n'importe quel tag/classe/id qui, selon vous, lance la fête et vous risquez d'arriver plus vite que prévu.
Sachez que parfois, il n'y a pas seulement un img
mais beaucoup d'éléments empilés, et vous pouvez ne pas savoir lequel déclenche le code.
Si cela dépasse un peu vos connaissances, jetez un coup d'œil à Tutoriel de Chrome sur le débogage .
4 votes
J'utilise généralement le
Visual Event
bookmarklet. Il détecte les événements de clics liés à des bibliothèques populaires et crée une superposition du site montrant où les événements sont liés et donnant des échantillons de code et des emplacements de source pour chaque événement.3 votes
@DontVoteMeDown Mais cela va à l'encontre de toute la question. Supposons que j'aie des dizaines de fichiers *.js sur le site Web, comment savez-vous que le code déclenché par le bouton se trouve dans jquery2.js ?
0 votes
@KevinB Oui, j'ai oublié que j'utilise parfois l'extension Chrome "Visual Event". Je vais mettre à jour le post pour que les gens puissent le voir, mais c'est en dehors de Dev Tools, ce qui est le point principal de la question. Est-ce vraiment impossible en utilisant uniquement les outils de développement de Chrome ?
0 votes
Oui, simplement parce que le navigateur ne rend pas cette information disponible. Visual event le fait en ciblant les événements liés à des bibliothèques populaires.
1 votes
Je comprends comment fonctionne Visual Event (grâce à vous BTW) mais lorsque vous cliquez sur ce bouton, votre navigateur sait parfaitement ce qu'il faut faire parce qu'il l'exécute. Je veux juste m'assurer que ce n'est pas faisable avec les outils de développement et je passerai à autre chose.
0 votes
Si vous savez quelle bibliothèque a été utilisée pour lier l'événement, vous pouvez le découvrir en utilisant cette bibliothèque, mais pour autant que je sache, il n'y a pas d'autre moyen. L'api dom n'expose pas les événements liés en utilisant addEventListener d'une manière qui vous permettrait de les voir.
0 votes
@KevinB Merci pour la recommandation de Visual Event, et CarlesAlcolea pour la question qui l'a suscitée. J'ai déjà cherché un moyen de le faire et je suis heureux de savoir qu'un outil (bien que tiers) existe.
0 votes
Avez-vous essayé 'break on next expression' ? Cela ne fonctionnera pas si le bouton gère l'entrée/sortie de la souris, mais si le seul événement auquel vous avez souscrit est le clic, cela devrait fonctionner.
0 votes
@PeterAronZentai comment je fais ça ? Je n'ai rien trouvé en googlant "break on next expression" et autres combinaisons similaires.
0 votes
@CarlesAlcolea Désolé, cela s'appelle pause script exécution. Vous y accédez par F12 -> Source -> appuyez sur le bouton "pause" dans le groupe de contrôle de gauche avec callstack, breakpoints, etc.... Mais il est vraiment enclin à des handlers globaux de survol de la souris etc - donc gérez vos attentes :)
0 votes
Ouais, tu ne peux aller nulle part avec celle-là. Merci quand même d'avoir donné des idées.
1 votes
Bonne question, je pense vraiment que c'est une fonctionnalité que Chrome (ou Firefox) devrait avoir.
1 votes
Si vous avez trouvé la réponse à cette question, veuillez l'ajouter comme réponse. Répondre à votre propre question est fortement encouragée, mais y répondre en modifiant votre question ne l'est pas.
0 votes
@TheGuywithTheHat J'ai à la fois répondu à ma propre question (dans mon OP parce que c'est comme ça que ça a commencé en donnant mes pauvres solutions insatisfaisantes) et choisi une réponse (celle d'Alexandre Pavlov). Je ne pense pas comprendre ce que vous voulez dire.
1 votes
Une question est une question pas une réponse. Vous avez inclus des solutions (c'est-à-dire des réponses) dans ce message (une question).
0 votes
J'ai trouvé un blog : divshot.com/blog/tips-and-tricks/