在Google Chrome调试器中单步执行JavaScript代码时,如果不想继续,如何终止脚本执行?我发现的唯一方法是关闭浏览器窗口。
按“重新加载此页面”将运行其余代码,甚至就像按F8“继续”一样提交表单。
更新:
在脚本暂停时按F5(刷新)时:
- Google Chrome(v22)运行脚本。如果脚本提交了HTTP请求,则显示该请求的HTTP响应。原始页面未刷新。
- IE 9只是冻结。但是IE有一个选项“ Stop Debugging”(停止调试),如果按下该按钮(前提是您之前没有按F5键),它将继续在调试器之外运行脚本。
- Firebug的行为与Chrome相同。
关闭浏览器窗口然后再次打开并不是总是最简单的方法,因为它会终止浏览器会话状态,这可能很重要。您所有的断点也会丢失。
更新(2014年1月):
调试时刷新:
- Chrome v31:允许脚本运行并在其他断点处停止(但不提交ajax请求),然后刷新。
- IE 11:刷新没有任何作用,但是您可以按F5继续。
- Firefox v26:允许脚本运行,但不会在进一步的断点处停止,提交ajax请求,然后刷新。
有点进步!
调试时导航至同一页面:
- Chrome v31:与“刷新”相同。
- IE 11:脚本已终止,新的浏览器会话已启动(与关闭并再次打开相同)。
- Firefox v26:什么也没发生。
另外,juacala建议了有效的解决方法。例如,如果您使用的是jQuery,则一旦遇到任何jQuery方法,从控制台运行delete $将停止执行。我已经在所有上述浏览器中对其进行了测试,并且可以确认它是否正常运行。
更新(2015年3月):
最终,经过2年多的浏览量和近1万次浏览,Alexander K给出了正确的答案。Google Chrome浏览器具有自己的任务管理器,可以关闭制表符进程而无需关闭制表符本身,而使所有断点和其他内容保持完整。
我什至到BrowserStack.com都在Chrome v22中对其进行了测试,发现即使在那时,这种方式也能正常工作。
在IE或Firefox中进行调试时,Juacala的解决方法仍然很有用。
更新(2019年1月):
最后,Chrome开发者工具添加了一种停止脚本执行的正确方法,这很好(尽管有些隐蔽)。有关详细信息,请参阅James Gentes的答案。
debugger;
到开发者工具控制台,它会立刻把东西放到调试器和停止脚本。