如果我在代码中犯了一个错误并导致JavaScript中出现无限循环并且它不断调用alert(),有没有办法停止循环?
-
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扩展,以解决这一问题。
没有办法。好消息是,虽然大多数的浏览器有无限递归的保护,但是这是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按钮。这给你非常小的时间窗口,你可以提醒之间关闭。
请注意:如果您有多个标签页打开,你需要从图标关闭它们的控制条上在屏幕的底部,一是因为“关闭所有标签信息”会干扰