266 votes

Comment mettre fin à l'exécution du script lors du débogage dans Google Chrome ?

Lorsque je parcours le code JavaScript dans le débogueur de Google Chrome, comment puis-je mettre fin à l'exécution du script si je ne veux pas continuer ? Le seul moyen que j'ai trouvé est de fermer la fenêtre du navigateur.

En appuyant sur "Recharger cette page", on exécute le reste du code et on soumet même les formulaires comme si on appuyait sur F8 "Continuer".

UPDATE :

Lorsque vous appuyez sur F5 (Rafraîchir) alors qu'un script est en pause :

  • Google Chrome (v22) exécute le script. Si le script soumet une requête HTTP, la réponse HTTP pour cette requête est affichée. La page originale n'est pas rafraîchie.
  • IE 9 se fige. Cependant, IE dispose d'une option "Stop Debugging" qui, lorsqu'elle est pressée (à condition que vous n'ayez pas appuyé sur F5 auparavant), continue à exécuter le script en dehors du débogueur.
  • Firebug se comporte de manière identique à Chrome.

Fermer puis rouvrir la fenêtre du navigateur n'est pas toujours le moyen le plus simple de le faire parce que cela va tuer l'état de la session du navigateur et cela peut être important. Tous vos points d'arrêt sont également perdus.

MISE À JOUR (janvier 2014) :

Rafraîchir pendant le débogage :

  • Chrome v31 : laisse scripts s'exécuter et s'arrête sur d'autres points d'arrêt (mais ne soumet pas de requêtes ajax), puis rafraîchit.
  • IE 11 : le rafraîchissement ne fait rien, mais vous pouvez appuyer sur F5 pour continuer.
  • Firefox v26 : laisse scripts s'exécuter mais ne s'arrête pas sur d'autres points d'arrêt, soumet des requêtes ajax, puis rafraîchit.

Une sorte de progrès !

Naviguez vers la même page pendant le débogage :

  • Chrome v31 : même chose que Refresh.
  • IE 11 : scripts sont terminés, une nouvelle session du navigateur est lancée (identique à la fermeture et à la réouverture).
  • Firefox v26 : rien ne se passe.

Aussi juacala a suggéré une solution de contournement efficace. Par exemple, si vous utilisez jQuery, exécuter supprimez le $ de la console arrêtera l'exécution dès qu'une méthode jQuery sera rencontrée. Je l'ai testé dans tous les navigateurs ci-dessus et je peux confirmer que cela fonctionne.

MISE À JOUR (mars 2015) :

Enfin, après plus de 2 ans et près de 10 000 consultations, la bonne réponse a été donnée par Alexander K. Google Chrome possède son propre gestionnaire de tâches qui permet de tuer un processus d'onglet. sin fermer l'onglet lui-même, en conservant tous les points d'arrêt et autres éléments intacts.

Je suis même allé jusqu'à BrowserStack.com pour le tester dans Chrome v22 et j'ai constaté que cela fonctionnait de cette façon même à cette époque.

La solution de rechange de Juacala reste utile pour le débogage dans IE ou Firefox.

MISE À JOUR (janvier 2019) :

Chrome Dev Tools a enfin ajouté un moyen approprié d'arrêter l'exécution de script, ce qui est bien (bien qu'un peu caché). Reportez-vous à la réponse de James Gentes pour plus de détails.

-1voto

Murtaza Hussain Points 1542

Il y a beaucoup de solutions appropriées à ce problème comme mentionné ci-dessus dans ce post, mais j'ai trouvé un petit hack qui peut être inséré dans le script ou collé dans la console Chromes (débogueur) pour y parvenir :

jQuery(window).keydown(function(e) { if (e.keyCode == 123) debugger; });

L'exécution sera ainsi interrompue lorsque vous appuierez sur la touche F12 .

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