Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript chrome:如何中止在'debugger'语句中停止的脚本?_Javascript_Debugging_Google Chrome_Google Chrome Devtools - Fatal编程技术网

Javascript chrome:如何中止在'debugger'语句中停止的脚本?

Javascript chrome:如何中止在'debugger'语句中停止的脚本?,javascript,debugging,google-chrome,google-chrome-devtools,Javascript,Debugging,Google Chrome,Google Chrome Devtools,考虑以下愚蠢的例子: <!doctype html> <meta charset="utf-8"> <title>dumb snippet</title> <script> var i = 0; while (i < 100) { console.log(i); debugger; i += 1; } </script> 哑片段 var i=0; 而(idevquit 0 >devquit=

考虑以下愚蠢的例子:

<!doctype html>
<meta charset="utf-8">
<title>dumb snippet</title>
<script>
var i = 0;
while (i < 100) {
    console.log(i);
    debugger;
    i += 1;
}
</script>

哑片段
var i=0;
而(i<100){
控制台日志(i);
调试器;
i+=1;
}
如果我使用Google Chrome的DevTools运行这段代码,调试器会尽职尽责地在
debugger
语句中停止执行,但我没有找到任何方法立即中止(并重新启动)脚本。AFAICT,按下
Ctrl-R
甚至
Shift-Ctrl-R
,而不是重新加载页面,只会导致执行继续

我发现的唯一方法是显而易见的,但不必要的不便:完全关闭选项卡/窗口,然后打开一个新的

Google Chrome开发工具是否提供了一些方法来立即中止在
调试器
语句中停止的脚本


(如果答案恰好是“否”,请不要发布变通方法。我可以想到很多变通方法,例如,保持F-8直到循环退出,当然,如果循环是无限循环,这将不起作用。在任何情况下,我只关心是否有“官方”方法中止并重新启动这样的脚本。)您可以这样做,但必须先准备好代码

关于在Google Chrome开发工具中停止脚本执行的说明:

(1) 创建一个全局变量:

var devquit=0;
$(document).ready({
    //the rest of your code
(2) 在您希望退出的任何地方,插入此变量的测试:

//Lotsa code
if (devquit > 0) return false;
(3) 在上述测试行上或之前暂停执行脚本

(4) 切换到控制台

(5) 类型:

>devquit
0
>devquit=1 devquit
1.
(6) 继续执行脚本。当脚本执行上述步骤(2)中的测试时,它将
返回false


注:

(A) 这个技巧适用于全局变量和对象,但不适用于局部变量

(B) 因此,如果您有一个全局变量或一个对象,如果它有一个给定的值,它将返回false,那么您仍然可以对已经运行的代码使用这个技巧

(C) 在紧急情况下,您还可以从DOM(在elements选项卡上)中删除会导致javascript错误的元素。例如,假设您有code
var cartype=$('#cartype').val()
如果删除该行代码前面ID=
cartype
的元素,那么js将在该行中断但是,当您尝试重新运行代码时,该元素仍将丢失。上述技巧允许您无限期地运行和重新运行代码


更多说明:

(a) 在代码中插入断点:只需键入
debugger单独在一行上。如果DevTools处于打开状态,脚本将在此时跳转到调试器中。若DevTools未打开,代码将忽略语句

(b) 要避免在调试代码时跳入jQuery库吗?黑盒子。见-或-


感谢(请访问并投票):


我以前也有过这个问题,但并不总是这样。我相信,打开一个新标签会强制执行一个新的流程,这就是为什么它可以工作的原因。更好的解决方法是:F5->F12->F12
> devquit
0
> devquit=1   <=== only this line is necessary
> devquit
1