Lorsque vous parcourez le code JavaScript dans le débogueur Google Chrome, comment puis-je mettre fin à l'exécution du script si je ne souhaite pas continuer? La seule façon que j'ai trouvée est de fermer la fenêtre du navigateur.
Appuyer sur "Recharger cette page" exécute le reste du code et envoie même des formulaires comme si vous appuyez sur F8 "Continuer".
MISE À JOUR :
Lorsque vous appuyez sur F5 (Actualiser) alors qu'un script est en pause:
- Google Chrome (v22) exécute le script. Si le script soumet une demande HTTP, la réponse HTTP pour cette demande s'affiche. La page d'origine n'est pas actualisée.
- IE 9 se bloque simplement. Cependant, IE a une option "Arrêter le débogage" qui, une fois enfoncée (à condition que vous n'ayez pas appuyé sur F5 plus tôt), continue d'exécuter le script en dehors du débogueur.
- Firebug se comporte de manière identique à Chrome.
La fermeture puis la réouverture de la fenêtre du navigateur n'est pas toujours la solution la plus simple, car elle tuera 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) :
Actualiser pendant le débogage:
- Chrome v31: permet aux scripts de s'exécuter et s'arrête sur d'autres points d'arrêt (mais ne soumet pas de demandes ajax), puis s'actualise.
- IE 11: l'actualisation ne fait rien, mais vous pouvez appuyer sur F5 pour continuer.
- Firefox v26: permet aux scripts de s'exécuter mais ne s'arrête pas sur d'autres points d'arrêt, soumet des requêtes ajax, puis actualise.
Genre de progrès!
Accédez à la même page pendant le débogage:
- Chrome v31: identique à Actualiser.
- IE 11: les scripts sont terminés, une nouvelle session de navigateur est lancée (identique à la fermeture et à la réouverture).
- Firefox v26: rien ne se passe.
Juacala a également suggéré une solution de contournement efficace. Par exemple, si vous utilisez jQuery, l'exécution de delete $ de la console arrêtera l'exécution une fois qu'une méthode jQuery sera rencontrée. Je l'ai testé dans tous les navigateurs ci-dessus et je peux confirmer qu'il fonctionne.
MISE À JOUR (mars 2015) :
Enfin, après plus de 2 ans et près de 10K vues, la bonne réponse a été donnée par Alexander K. Google Chrome a son propre gestionnaire de tâches qui peut tuer un processus de tabulation sans fermer l'onglet lui - même, en gardant tous les points d' arrêt et d' autres choses intactes.
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 contournement de Juacala est toujours utile lors du 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 du script, ce qui est bien (bien qu'un peu caché). Reportez-vous à la réponse de James Gentes pour plus de détails.
debugger;
dans la console des outils de développement et il mettra immédiatement les choses dans le débogueur et arrêtera le script.Réponses:
Dans Chrome, il y a "Task Manager", accessible via Shift+ ESCou via
Vous pouvez sélectionner votre tâche de page et la terminer en appuyant sur le bouton "Terminer le processus".
la source
chrome 48
cela ne fera que FERMER l'outil Dev, et ne pas le terminer, le rouvrir, vous pouvez voir le programme toujours en cours d'exécution (tried setInterval()
)Depuis avril 2018, vous pouvez arrêter des boucles infinies dans Chrome :
Notez également les touches de raccourci: F8et Ctrl+\
la source
body
élément ici sur SO, défini une "pause sur -> modifications de sous-arbre", puis cliqué n'importe où. Le bouton ressemble à la capture d'écran que j'ai publiée.Une façon de le faire est de suspendre le script, regardez quel code suit où vous êtes actuellement arrêté, par exemple:
Dans la console, procédez comme suit:
Ensuite, jouez le script: il provoquera une erreur fatale lorsqu'il essaiera d'accéder
somethingElse
, et le script mourra. Voila, vous avez terminé le script.EDIT: À l'origine, j'ai supprimé une variable. Ce n'est pas assez bon. Vous devez supprimer une fonction ou un objet dont JavaScript tente d'accéder à une propriété.
la source
you have to delete a function or an object
un tel hack méchant! (dans l'interface utilisateur, il conviendrait bien comme bouton de suppression de tout )Mise à jour d'avril 2020
Depuis Chrome 80, aucune des réponses actuelles ne fonctionne. Il n'y a pas de bouton "Pause" visible - vous devez cliquer longuement sur le bouton "Lecture" pour accéder à l'icône Stop:
la source
Si vous rencontrez cela lors de l'utilisation de l'
debugger
instruction,... alors je pense que la page continuera de fonctionner indéfiniment jusqu'à ce que le runtime js donne, ou la prochaine pause. En supposant que vous êtes en mode pause sur erreur (le basculement de l'icône pause), vous pouvez vous assurer qu'une pause se produit en faisant quelque chose comme:
ou peut-être appeler une fonction inexistante:
(Bien sûr, cela n'aide pas si vous essayez de parcourir les fonctions, bien que vous puissiez peut-être ajouter dynamiquement un
throw 1
ouz()
ou un peu dans le panneau Sources, ctrl-S pour enregistrer, puis ctrl-R pour actualiser ... ce peut cependant ignorer un point d'arrêt, mais peut fonctionner si vous êtes dans une boucle.)Si vous effectuez une boucle et prévoyez de déclencher
debugger
à nouveau l' instruction, vous pouvez simplement taper à lathrow 1
place.Ensuite, lorsque vous appuyez sur ctrl-R, le lancer suivant sera atteint et la page sera actualisée.
(testé avec Chrome v38, vers avril 2017)
la source
Bonne question ici. Je pense que vous ne pouvez pas terminer l'exécution du script. Bien que je ne l'ai jamais cherché, j'utilise le débogueur Chrome depuis assez longtemps au travail. Je définis généralement des points d'arrêt dans mon code javascript, puis je débogue la partie de code qui m'intéresse. Lorsque je termine le débogage de ce code, je lance généralement le reste du programme ou actualise le navigateur.
Si vous voulez empêcher le reste du script d'être exécuté (par exemple en raison d'appels AJAX qui vont être effectués), la seule chose que vous pouvez faire est de supprimer ce code dans la console à la volée, empêchant ainsi ces appels d'être exécuté , vous pouvez alors exécuter le code restant sans problème.
J'espère que ça aide!
PS: J'ai essayé de trouver une option pour terminer l'exécution dans certains tutoriels / guides comme les suivants, mais je ne l'ai pas trouvée. Comme je l'ai déjà dit, il n'y a probablement pas une telle option.
http://www.codeproject.com/Articles/273129/Beginner-Guide-to-Page-and-Script-Debugging-with-C
http://www.nsbasic.com/app/tutorials/TT10.htm
la source
En se référant à la réponse donnée par @scottndecker à la question suivante , Chrome propose désormais une option "désactiver JavaScript" sous Outils de développeur:
...
en haut à droiteLa bonne chose est que vous pouvez arrêter et réexécuter simplement en le cochant / décochant.
la source
Vous pouvez le faire, mais vous devez d'abord préparer votre code.
Instructions pour arrêter l'exécution du script dans Google Chrome Dev Tools:
(1) Préparez d'abord votre code, en créant une variable globale :
(2) N'importe quel endroit où vous voudrez peut-être arrêter, testez la valeur de cette variable:
(3) Suspendre l'exécution du script sur ou avant la ou les lignes de test ci-dessus
(4) Passer à la console
(5) Type:
(6) Continuez l'exécution du script. Le script
return false
exécutera le test de l'étape (2) ci-dessusRemarques:
(A) Cette astuce fonctionne avec des variables et des objets globaux, mais elle ne fonctionnera pas avec des variables locales. Notez que ceci:
newVar = 'never used before';
crée une nouvelle propriété de l'objet fenêtre (fonctionne avec l'astuce ci-dessus), tandis que ceci:
var newVar = 'never used before';
crée une variable locale (ne fonctionne PAS avec l'astuce ci-dessus!)
(B) Donc, vous pouvez toujours utiliser cette astuce avec du code déjà en cours d'exécution si vous avez une variable globale ou un objet qui retournera false s'il a une valeur donnée.
(C) Dans un pincement, vous pouvez utiliser l'astuce de juacala et supprimer un élément du DOM (sur l'onglet éléments) qui provoquera une erreur javascript. Par exemple, supposons que vous ayez du code
var cartype = $('#cartype').val();
Si vous supprimez l'élément avec ID =cartype
avant cette ligne de code, les js se briseront sur cette ligne. Cependant, l'élément sera toujours manquant lorsque vous essayez de réexécuter le code. L'astuce décrite ci-dessus vous permet d'exécuter et de réexécuter le code à l' infini.Plus de notes:
(a) Insérez un point d'arrêt dans le code: tapez simplement
debugger;
sur une ligne par lui-même. Si DevTools est ouvert, le script sautera dans le débogueur à ce stade. Si DevTools ne s'ouvre pas, le code ignorera l'instruction.(b) Vous voulez éviter de sauter dans la bibliothèque jQuery lors du débogage du code? Blackbox it. Voir les instructions de la boîte noire pour Chrome - ou - pour Firefox
Gratitude (veuillez visiter et voter):
Débogage Javascript ligne par ligne à l'aide de Google Chrome
Est-il possible de modifier les valeurs des variables javascript lors du débogage dans Google Chrome?
la source
Any place where you may wish to quit, test the value of this variable
C'est horrible! Je veux arrêter partout où je pourrais marcher en ce moment, je ne sais pas à l'avance où cela pourrait être!Vous pouvez faire une pause sur n'importe quel modèle XHR que je trouve très utile lors du débogage de ce type de scénarios.
Par exemple, j'ai donné un point d'arrêt sur un modèle d'URL contenant "/"
la source
Si vous avez une boucle non autorisée, mettez le code en pause dans le débogueur Google Chrome (le petit
||
bouton "" dans l'onglet Sources).Revenez à Chrome lui-même, ouvrez le "Gestionnaire des tâches" ( Shift+ ESC), sélectionnez votre onglet, cliquez sur le bouton "Terminer le processus".
Vous obtiendrez le message Aww Snap et vous pourrez ensuite recharger ( F5).
Comme d'autres l'ont noté, le rechargement de la page au moment de la pause équivaut au redémarrage de la boucle non autorisée et peut provoquer des verrous désagréables si le débogueur se verrouille également (entraînant dans certains cas le redémarrage de Chrome ou même du PC). Le débogueur a besoin d'un bouton "Stop". Nb: La réponse acceptée est obsolète dans la mesure où certains aspects de celle-ci sont maintenant apparemment faux. Si vous me votez contre, veuillez expliquer :) .
la source
Ouvrez l'onglet source dans 'Developer Tools', cliquez sur un numéro de ligne dans un script en cours d'exécution, cela créera un point d'arrêt et le débogueur s'arrêtera là.
la source
Il existe de nombreuses 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:
Cela entraînera une interruption de l'exécution lorsque vous frappez
F12
.la source