当在谷歌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的回答。


当前回答

2020年4月更新

截至Chrome 80,当前的答案都不能工作。没有可见的“暂停”按钮-你需要长按“播放”按钮才能进入“停止”图标:

其他回答

您可以暂停任何XHR模式,我发现在调试这类场景时这非常有用。

例如,我在包含"/"的URL模式上给出了断点

转到Sources选项卡并选择Filesystem子选项卡

选择一个文件夹,其中包含要执行的文件 接受文件夹访问请求 选择要执行的文件

在要执行的文件中放置断点 点击“暂停脚本执行选项”

在人民币上下文菜单中选择复制链接地址选项

将复制的地址粘贴到浏览器地址栏以打开该文件 文件执行将在断点处停止

问得好。我认为你不能终止脚本执行。虽然我从来没有寻找它,我已经在工作中使用chrome调试器相当长的一段时间。我通常在javascript代码中设置断点,然后调试我感兴趣的部分代码。当我完成调试代码时,我通常只运行程序的其余部分或刷新浏览器。

如果你想阻止脚本的其余部分被执行(例如,由于AJAX调用将被执行),你唯一能做的就是在运行中删除控制台中那些代码,从而阻止那些调用被执行,然后你可以毫无问题地执行剩下的代码。

我希望这能有所帮助!

附注:我试图在以下教程/指南中找到一个终止执行的选项,但找不到。正如我之前所说,可能没有这样的选择。

http://www.codeproject.com/Articles/273129/Beginner-Guide-to-Page-and-Script-Debugging-with-C

http://www.nsbasic.com/app/tutorials/TT10.htm

2020年4月更新

截至Chrome 80,当前的答案都不能工作。没有可见的“暂停”按钮-你需要长按“播放”按钮才能进入“停止”图标:

在“开发人员工具”中打开源代码选项卡,单击正在运行的脚本中的行号,这将创建一个断点,调试器将在那里中断。