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