当在谷歌Chrome调试器中逐步通过JavaScript代码时,如果我不想继续,我如何终止脚本执行?我找到的唯一办法就是关闭浏览器窗口。

按下“重新加载此页面”将运行其余代码,甚至像按下F8“继续”一样提交表单。

更新:

当脚本暂停时按F5(刷新):

谷歌Chrome (v22)运行该脚本。如果脚本提交了HTTP请求,则会显示该请求的HTTP响应。未刷新原始页面。 IE 9死机了。但是IE有一个选项“停止调试”,当按下(假设你之前没有按F5),继续在调试器外运行脚本。 Firebug的行为与Chrome相同。

关闭然后再打开浏览器窗口并不总是下一个最简单的方法 因为它会杀死浏览器会话状态,这可能很重要。所有的断点也都丢失了。

更新(2014年1月):

调试时刷新:

Chrome v31:让脚本运行,并在进一步的断点停止(但不提交ajax请求),然后刷新。 IE 11:刷新不做什么,但你可以按F5继续。 Firefox v26:允许脚本运行,但不会在进一步的断点处停止,提交ajax请求,然后刷新。

有点进步!

调试时导航到同一页面:

Chrome v31:与刷新相同。 ie11:终止脚本,启动新的浏览器会话(和关闭再打开一样)。 Firefox v26:什么都没有发生。

juacala还提出了一个有效的变通办法。例如,如果你正在使用jQuery,运行delete $ from console命令会在遇到任何jQuery方法时停止执行。我已经在以上所有浏览器中进行了测试,可以确认它是工作的。

更新(2015年3月):

最后,经过2年多的时间和近10K的浏览,Chrome有自己的任务管理器,可以杀死一个标签进程而不关闭标签本身,保持所有的断点和其他东西完好无损。

我甚至去了BrowserStack.com在Chrome v22中测试它,发现即使在那个时候它也是这样工作的。

在IE或Firefox中调试时,Juacala的解决方案仍然很有用。

更新(2019年1月):

Chrome开发工具最后增加了一个适当的方法来停止脚本执行,这是很好的(虽然有点隐藏)。详情请参考James Gentes的回答。


当前回答

参考@scottndecker对以下问题的回答,chrome现在在开发人员工具下提供了一个“禁用JavaScript”选项:

垂直……在右上角(在开发人员工具菜单,而不是在Chrome主菜单) 设置(在更新的Chrome版本中,它是可见的单独作为齿轮除了…按钮,而不是下面) 在“首选项”下找到最底部的“调试器”部分然后选择“禁用JavaScript”

好在您可以通过检查/取消检查来停止并重新运行它。

其他回答

参考@scottndecker对以下问题的回答,chrome现在在开发人员工具下提供了一个“禁用JavaScript”选项:

垂直……在右上角(在开发人员工具菜单,而不是在Chrome主菜单) 设置(在更新的Chrome版本中,它是可见的单独作为齿轮除了…按钮,而不是下面) 在“首选项”下找到最底部的“调试器”部分然后选择“禁用JavaScript”

好在您可以通过检查/取消检查来停止并重新运行它。

自2018年4月起,你可以在Chrome中停止无限循环:

在开发人员工具中打开源代码面板(Ctrl+Shift+I**)。 单击Pause按钮暂停脚本执行。

还要注意快捷键:F8和Ctrl+\

在Chrome中,有“任务管理器”,通过Shift+ESC或通过

菜单→更多工具→任务管理器

您可以选择您的页面任务,并通过按“end Process”按钮结束它。

如果你有一个流氓循环,暂停代码在谷歌Chrome调试器(小“||”按钮,而在来源选项卡)。

切换回Chrome本身,打开“任务管理器”(Shift+ESC),选择你的选项卡,点击“结束进程”按钮。

你会得到Aww Snap消息,然后你可以重新加载(F5)。

正如其他人所注意到的,在暂停时重新加载页面与重新启动流氓循环是一样的,如果调试器也被锁定,则会导致严重的锁定(在某些情况下导致重新启动chrome甚至PC)。调试器需要一个“Stop”按钮。注:这个公认的答案已经过时了,因为它的某些方面现在显然是错误的。如果你投票反对我,请解释:)。

一种方法是暂停脚本,看看你当前停止的地方后面有什么代码,例如:

var something = somethingElse.blah;

在控制台中,执行以下操作:

delete somethingElse;

然后播放脚本:当它试图访问somethingElse时将导致致命错误,并且脚本将死亡。瞧,你已经终止了脚本。

编辑:最初,我删除了一个变量。这还不够好。您必须删除JavaScript试图访问属性的函数或对象。