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?
-
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?
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:
- Mantenha Ctrl
- Mantenha Enter
- 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.
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