如果我在代码中犯了一个错误并导致JavaScript中出现无限循环并且它不断调用alert(),有没有办法停止循环?

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

  •  23-08-2019
  •  | 
  •  

有时我使用调试代码来警告 javascript 中的某些内容(例如,匹配正则表达式中的某些内容),但忘记了修饰符,并且警报处于无限循环中(或者如果循环与模式匹配 300 次)。如果使用 Firefox,警报会不断出现,甚至无法关闭选项卡、窗口或应用程序。

如果我强制退出,它将关闭 Firefox 的所有选项卡,甚至其他窗口......实际上有没有一种方法可以更优雅地停止循环?

有帮助吗?

解决方案

简短的回答是:无

这是一个很好的理由使用萤火虫和的console.log功能。其中,讽刺的是,会导致“停止脚本,因为它离家出走对话”不要在某些情况下显示,这意味着你是右后卫,你现在的样子。

铬和歌剧具有此功能。 IE不,苹果Safari浏览器也没有。

不是本机的解决方案,但你可以试试这个油脂猴脚本:的 http://www.tumuski.com/2008/05/javascript-alert-cancel-button/

另外,你的可能的根本无视该警报功能使用确认对话框,而不是和停止显示警告,如果确认被取消:

var displayAlerts = true;

然后:

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

其他提示

看起来你可以在 Firefox 中:

  1. 按住Ctrl键
  2. 按住回车键
  3. 按一次 F4

根据博客文章,它并不适用于所有情况,更多信息如下: puremango.co.uk

谷歌浏览器,可以防止额外的警报无法显示。

我写了一个Firefox扩展,以解决这一问题。

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

没有办法。好消息是,虽然大多数的浏览器有无限递归的保护,但是这是offtopic。

安装Greasemonkey的,去到这个网页: http://www.tumuski.com/2008/05/javascript -alert-取消按钮/

在安装此脚本的Greasemonkey之后,任何警告对话框窗口将有一个取消按钮,它就会停止的JavaScript。

如果您需要关闭网页浏览器,不想CTRL-ALT-DEL无论出于何种原因(在我的情况我不好的JavaScript无限循环警报是在Citrix这将自动重新加载运行[IE上测试了11]我一个CTRL-ALT-德尔后最后一个会话从所述高速缓冲存储器,其我不能清除)

您可以窃听你的出路按住ALT-F4和垃圾邮件的X (关闭浏览器窗口)。

这工作真快......而alt + F4关闭警报框真快,你会在你的浏览器闪烁的顶部发现的X按钮。这给你非常小的时间窗口,你可以提醒之间关闭。

请注意:如果您有多个标签页打开,你需要从图标关闭它们的控制条上在屏幕的底部,一是因为“关闭所有标签信息”会干扰

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top