se commetto un errore nel codice e provoco un loop infinito in JavaScript e continua a chiamare alert(), c'è una via d'uscita per fermare il loop?

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

  •  23-08-2019
  •  | 
  •  

Domanda

a volte utilizzo il codice di debug per avvisare qualcosa in JavaScript (ad esempio, abbinando qualcosa nell'espressione regolare), ma dimentico un modificatore e l'avviso è in un ciclo infinito (o se il ciclo corrisponde al modello 300 volte).Se utilizzi Firefox, l'avviso continua a essere visualizzato e non c'è nemmeno modo di chiudere la scheda, la finestra o l'app.

Se forzo l'uscita, verranno chiuse tutte le schede e anche le altre finestre di Firefox...esiste effettivamente un modo per fermare il ciclo in modo più elegante?

È stato utile?

Soluzione

La risposta breve è:. No

Questa è una buona ragione per usare Firebug e la funzione console.log. Il che, per ironia della sorte, farà sì che il "copione fermata perché è scappare finestra di dialogo" per non visualizzare, in alcuni casi, nel senso che è terzino destro dove siete ora.

Chrome e Opera hanno questa caratteristica. IE non lo fa, Apple Safari non lo fa neanche.

Non una soluzione nativa, ma si potrebbe provare questo script rattoppa-: http://www.tumuski.com/2008/05/javascript-alert-cancel-button/

Inoltre, è potrebbe semplicemente ignorare la funzione di allarme di utilizzare una conferma di dialogo, invece, e interrompere la visualizzazione allarmi se la conferma viene annullata:

var displayAlerts = true;

E poi:

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

Altri suggerimenti

Sembra che tu possa farlo in Firefox:

  1. Tieni premuto Ctrl
  2. Tieni premuto Invio
  3. Premi F4 una volta

Secondo il post del blog, non funziona in tutti i casi, maggiori informazioni qui: puremango.co.uk

Google Chrome consente di impedire ulteriori avvisi da mostrare.

Ho scritto un estensione per Firefox per combattere questo problema.

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

In nessun modo. Buona cosa è se la maggior parte dei browser hanno una protezione ricorsione infinita, ma questo è offtopic.

Installa Greasemonkey e andare a questa pagina: http://www.tumuski.com/2008/05/javascript -cancel-tasto -alert /

Dopo aver installato questo script per Greasemonkey, qualsiasi finestra di dialogo di avviso avrà un pulsante che si fermerà il javascript annullare.

[testato su IE 11] Se è necessario chiudere il browser web e non volete ctrl-alt-del per qualsiasi motivo (nel mio caso il mio male ciclo infinito javascript allarme è stato eseguito su Citrix che ricaricare automaticamente la mia ultima sessione dopo un ctrl-alt-del dalla memoria cache, che non posso chiaro)

è possibile bug tua via d'uscita da tenendo premuto Alt-F4 e spamming il X (per chiudere la finestra del browser).

Questo funziona veramente veloce ... L'alt-F4 chiude le caselle di avviso veramente veloce e si noterà il tasto X nella parte superiore del vostro sfarfallio browser. Questo ti dà molto piccole finestre di tempo in cui si può chiudere tra le segnalazioni.

. Nota: se si dispone di più schede aperte è necessario chiuderli dall'icona sulla barra di controllo nella parte inferiore dello schermo in primo luogo perché il "chiudere tutte le schede messaggio" interferirà

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top