si je fais une erreur dans le code et provoquer une boucle infinie en javascript et il continue en alerte appelant (), est-il un moyen de sortir pour arrêter la boucle?

StackOverflow https://stackoverflow.com/questions/894530

  •  23-08-2019
  •  | 
  •  

Question

parfois j'utiliser le code de débogage pour alerter quelque chose en javascript (par exemple, correspondant à quelque chose dans l'expression régulière), mais oublier un modificateur et et l'alerte est dans une boucle infinie (ou si la boucle correspond au modèle 300 fois). Si vous utilisez Firefox, l'alerte continue à sortir, et il n'y a aucun moyen de même fermer l'onglet, la fenêtre ou l'application.

Si je force la sortie, il fermera ses portes tous les onglets et même d'autres fenêtres de Firefox ... est-il vraiment un moyen d'arrêter la boucle avec plus de grâce?

Était-ce utile?

La solution

La réponse courte est:. Non

Ceci est une bonne raison d'utiliser Firebug et la fonction console.log. Ce qui, ironiquement, provoquera le « script d'arrêt, car il est en cours d'exécution loin de dialogue » pour ne pas afficher dans certains cas, ce qui signifie que vous êtes de retour où vous êtes maintenant.

Chrome et Opera ont cette fonctionnalité. IE n'a pas, Apple Safari ne pas non plus.

Pas une solution native mais vous pouvez essayer ce script graisse singe: http://www.tumuski.com/2008/05/javascript-alert-cancel-button/

En outre, vous peut simplement remplacer la fonction d'alerte à utiliser une confirmation de dialogue au lieu et arrêter l'affichage des alertes si la confirmation est annulée:

var displayAlerts = true;

Et puis:

function alert(msg) {
  if (displayAlerts) {
     if (!confirm(msg)) {
       displayAlerts = false;           
     }
  }
}

Autres conseils

On dirait que vous pouvez dans Firefox:

  1. Maintenez la touche Ctrl
  2. Entrer Maintenez
  3. Appuyez sur F4 une fois

D'après le billet de blog, il ne fonctionne pas dans tous les cas, plus d'informations ici: puremango.co.uk

Google Chrome vous permet d'éviter des alertes supplémentaires de montrer.

J'ai écrit une extension Firefox pour lutter contre ce problème.

https://addons.mozilla.org/en-US/firefox / addon / 13176

No way. Bonne chose est que la plupart des navigateurs ont une protection récursion infinie, mais c'est offtopic.

Installer Greasemonkey et allez à cette page: http://www.tumuski.com/2008/05/javascript -alert-cancel-bouton /

Après avoir installé ce script Greasemonkey, une fenêtre de dialogue d'alerte aura un bouton d'annulation dont il arrêtera le javascript.

[testé sur IE 11] Si vous devez fermer le navigateur Web et ne voulez pas ctrl-alt-del pour une raison quelconque (dans mon cas mon mauvais javascript boucle d'alerte infinie est en cours d'exécution sur citrix qui rechargera automatiquement mon dernière session après un ctrl-alt-del de la mémoire cache que je ne peux pas clair)

vous pouvez bug votre chemin par maintenant alt-F4 et spamming X (pour fermer la fenêtre du navigateur).

Cela fonctionne très vite ... L'alt-F4 ferme les boîtes d'alerte rapide et vraiment vous remarquerez le bouton X en haut de votre navigateur vacillante. Cela vous donne de très petites fenêtres de temps où vous pouvez le fermer entre des alertes.

. Remarque: si vous avez plusieurs onglets que vous ouvrez besoin de les fermer de l'icône sur la barre de contrôle en bas de votre écran d'abord parce que le « fermer tous les onglets message » interférera

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top