在Google Chrome调试器中单步执行JavaScript代码时,如果我不想继续,如何终止脚本执行?我找到的唯一方法是关闭浏览器窗口.
按"重新加载此页面"将运行其余代码,甚至提交表单,就像按F8"继续"一样.
更新:
在脚本暂停时按F5(刷新):
关闭然后再次打开浏览器窗口并不总是下一个最简单的方法,因为它会终止浏览器会话状态,这可能很重要.你的所有断点都会丢失.
更新(2014年1月):
调试时刷新:
有点进步!
调试时导航到同一页面:
此外juacala提出有效的解决办法.例如,如果您使用的是jQuery,则在遇到任何jQuery方法后,从控制台运行delete $将停止执行.我已在所有上述浏览器中对其进行了测试,并确认其正常运行.
更新(2015年3月):
最后,经过2年以上和近10K的观看,Alexander K给出了正确的答案.谷歌Chrome有自己的任务管理器,它可以在不关闭标签本身的情况下终止标签进程,保持所有断点和其他内容不变.
我甚至到了BrowserStack.com,在Chrome v22中测试它,发现即使在那个时候这种方式也是如此.
在IE或Firefox中进行调试时,Juacala的解决方法仍然有用.
更新(2019年1月):
Chrome Dev Tools最后添加了一种正确的方法来停止脚本执行,这很好(虽然有点隐藏).有关详细信息,请参阅James Gentes的答案.
在调试时我试图将计算的中间结果保存到变量中,以便在满足断点条件时我可以检查该值.但是,C#编译器(或CLR)将该变量优化为未使用.我通过使变量成为类的公共字段来解决问题,但是我想知道是否有一个直接的解决方案来解决这个问题.
未选中"优化代码"复选框.构建配置是Debug.
编辑:发现它只影响迭代器中一些未使用的变量,这些变量通常最终会作为自动生成的迭代器类中的字段; 保留在不包含yield语句的块中作用域的未使用变量.