如何在 Google Chrome 调试时终止脚本执行?
如何在 Google Chrome 调试时终止脚本执行?
在使用Google Chrome调试器逐步执行JavaScript代码时,如果不想继续执行,我该如何终止脚本的执行?我找到的唯一方法是关闭浏览器窗口。
按下“重新加载此页面”会运行剩余的代码,甚至会提交表单,就像按下F8“继续”一样。
更新:
在脚本暂停时按下F5(刷新):
- Google Chrome(v22)会运行该脚本。如果脚本提交HTTP请求,将显示该请求的HTTP响应。原始页面不会刷新。
- IE 9会冻结。然而,IE有一个“停止调试”的选项,当按下时(前提是您之前没有按下F5),脚本会继续在调试器外运行。
- Firebug的行为与Chrome相同。
关闭然后再次打开浏览器窗口并不总是下一个最简单的方法,因为它会终止浏览器会话状态,这可能很重要。您的所有断点也将丢失。
更新(2014年1月):
在调试时刷新:
- Chrome v31:允许脚本运行并在进一步的断点处停止(但不会提交ajax请求),然后刷新。
- IE 11:刷新不起作用,但您可以按下F5继续。
- Firefox v26:允许脚本运行,但不会在进一步的断点处停止,会提交ajax请求,然后刷新。
有所进展!
在调试时导航到同一页面:
- Chrome v31:与刷新相同。
- IE 11:脚本被终止,启动新的浏览器会话(与关闭并再次打开相同)。
- Firefox v26:没有任何反应。
此外,juacala提出了一个有效的解决方法。例如,如果您使用jQuery,在控制台运行delete $将在遇到任何jQuery方法时停止执行。我已在以上所有浏览器中进行了测试,并确认它有效。
更新(2015年3月):
终于,在超过2年和近10K次浏览后,由Alexander K提供了正确答案。Google Chrome拥有自己的任务管理器,可以终止标签进程而不关闭标签本身,保持所有断点和其他内容不变。
我甚至远至BrowserStack.com测试了在Chrome v22中的情况,并发现这种方式在当时也是有效的。
在IE或Firefox中调试时,juacala的解决方法仍然有用。
更新(2019年1月):
Chrome Dev Tools最终添加了一种适当的停止脚本执行的方法,这很好(虽然有点隐藏)。有关详细信息,请参阅James Gentes的答案。