se eu cometer um erro no código e causa um loop infinito em javascript e ele continua a chamar de alerta (), há uma maneira para parar o loop?

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

  •  23-08-2019
  •  | 
  •  

Pergunta

Às vezes eu usar o código de depuração para alerta algo em javascript (por exemplo, combinando algo na expressão regular), mas esquece um modificador e e o alerta está em um loop infinito (ou se o circuito corresponde ao padrão de 300 vezes). Se estiver usando o Firefox, o alerta continua a vir para fora, e não há maneira de nem perto da guia, a janela ou o aplicativo.

Se eu força de saída, que vai fechar todas as abas e até mesmo outras janelas do Firefox ... há realmente uma maneira de parar o loop mais graciosamente?

Foi útil?

Solução

A resposta curta é:. Não

Esta é uma boa razão para usar Firebug e a função console.log. Que, ironicamente, fará com que o "roteiro parada porque está fugindo de diálogo" para não exibir em alguns casos, o que significa que você está de volta exatamente onde você está agora.

Chrome e Opera têm esta característica. IE não, Apple Safari não quer.

Nem uma solução nativa, mas você pode tentar este script graxa-macaco: http://www.tumuski.com/2008/05/javascript-alert-cancel-button/

Além disso, você pode simplesmente substituir a função de alerta para usar um diálogo de confirmação vez e interromper a exibição de alertas se a confirmar é cancelado:

var displayAlerts = true;

E, em seguida:

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

Outras dicas

Parece que você pode em firefox:

  1. Mantenha Ctrl
  2. Mantenha Enter
  3. Pressione F4 uma vez

De acordo com o post, ele não funciona em todos os casos, mais informações aqui: puremango.co.uk

O Google Chrome permite que você para evitar alertas adicionais de mostrar.

Eu escrevi uma extensão do Firefox para combater este problema.

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

De maneira nenhuma. A boa notícia é que a maioria dos navegadores têm proteção recursão infinita, mas isso é offtopic.

Instale Greasemonkey e ir a esta página: http://www.tumuski.com/2008/05/javascript -alert-cancel-button /

Depois de instalar esse script para Greasemonkey, qualquer janela de diálogo de alerta terá um botão que vai parar o javascript cancelar.

[testado no IE 11] Se você precisa fechar o navegador web e não quer ctrl-alt-del por qualquer razão (no meu caso o meu mau javascript loop de alerta infinita estava rodando em Citrix, que seria automaticamente recarregar o meu última sessão após um ctrl-alt-del a partir da memória cache que eu não posso claro)

Você pode bug seu caminho para fora por pressionando Alt-F4 e spam no X (para fechar a janela do navegador).

Isso funciona muito rápido ... O alt-F4 fecha as caixas de alerta muito rápido e você vai notar o botão X no topo da cintilação seu browser. Isto dá-lhe muito pequenas janelas de tempo onde você pode fechá-la entre as indicações.

. Nota: Se tiver vários separadores abertos, você precisa fechá-las a partir do ícone na barra de controle na parte inferior da tela em primeiro lugar porque a "fechar todos os separadores mensagem" irá interferir

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top