Solution 1: cadre de blackboxing
Fonctionne très bien, configuration minimale et aucun tiers.
Selon la documentation de Chrome :
Que se passe-t-il lorsque vous blackboxez un script?
Les exceptions levées à partir du code de la bibliothèque ne se mettront pas en pause (si la pause sur les exceptions est activée), l'entrée / sortie / le contournement du code de la bibliothèque, les points d'arrêt de l'écouteur d'événements ne se cassent pas dans le code de la bibliothèque, le débogueur ne s'arrêtera pas sur les points d'arrêt définis dans la bibliothèque code. Le résultat final est que vous déboguez votre code d'application au lieu de ressources tierces.
Voici le workflow mis à jour:
- Ouvrez les outils de développement Chrome ( F12ou ⌘+ ⌥+ i), accédez aux paramètres (en haut à droite ou F1). Trouvez un onglet sur la gauche appelé " Blackboxing "
- C'est là que vous placez le modèle RegEx des fichiers que vous souhaitez que Chrome ignore lors du débogage. Par exemple:
jquery\..*\.js
(modèle glob / traduction humaine :jquery.*.js
)
- Si vous souhaitez ignorer des fichiers avec plusieurs modèles, vous pouvez les ajouter en utilisant le caractère pipe
|
, comme ceci:jquery\..*\.js|include\.postload\.js
(qui agit comme un "ou ce modèle", pour ainsi dire. Ou continuez à les ajouter avec le bouton "Ajouter".
- Passez maintenant à la solution 3 décrite ci-dessous.
Astuce bonus! J'utilise Regex101 régulièrement (mais il y a beaucoup d' autres:) pour tester rapidement mes modèles regex rouillés et savoir où je suis mal à l'expression rationnelle étape par étape débogueur. Si vous n'êtes pas encore "à l'aise" dans 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/ et https://www.debuggex.com/
Vous pouvez également utiliser le menu contextuel lorsque vous travaillez dans le panneau Sources. Lorsque vous affichez un fichier, vous pouvez cliquer avec le bouton droit dans l'éditeur et choisir Blackbox Script. Cela ajoutera le fichier à la liste dans le panneau Paramètres:
Solution 2: événement visuel
C'est un excellent outil pour avoir :
Visual Event est un bookmarklet Javascript open source qui fournit des informations de débogage sur les événements qui ont été attachés aux éléments DOM. L'événement visuel montre:
- Quels éléments sont associés à des événements
- Le type d'événements attachés à un élément
- Le code qui sera exécuté avec 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 d' autres types de points d'arrêt JS qui seront utiles à connaître. Vous devez appliquer la blackboxing 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électionnezclick
- Cliquez maintenant sur l'élément (l'exécution doit s'arrêter) et vous déboguez maintenant le code. Vous pouvez parcourir tous les codes en appuyant sur F11(qui est Step in ). Ou remontez quelques sauts dans la pile. Il peut y avoir une tonne de sauts
Solution 4: mots clés de pêche
Avec Dev Tools activé, vous pouvez rechercher toute la base de code (tout le code dans tous les fichiers) avec ⌘+ ⌥+ Fou:
et la recherche #envio
ou quel que soit le tag / classe / id que vous pensez commence la fête et vous pouvez arriver quelque part plus rapidement que prévu.
Sachez parfois qu'il n'y a pas seulement un, img
mais beaucoup d'éléments empilés, et vous ne savez peut-être pas lequel déclenche le code.
Si cela vous échappe un peu, consultez le didacticiel de Chrome sur le débogage .
Visual Event
bookmarklet. Il détecte les événements de clic liés par des bibliothèques populaires et crée une superposition du site montrant où les événements sont liés et donnant des exemples de code et des emplacements source pour chaque événement.