在单步执行Google Chrome调试器中的JavaScript代码时,如果我不想继续,如何终止脚本执行?我找到的唯一方法就是关闭浏览器窗口。
按“重新加载此页面”将运行其余代码,甚至可以像按F8“继续”一样提交表单。
更新:
在暂停脚本的情况下按F5 (刷新)时:
关闭然后再打开浏览器窗口并不总是下一个最简单的方法,因为它会杀死浏览器会话状态,这可能很重要。您的所有断点也将丢失。
更新(2014年1月):
调试时刷新:
刷新Chrome v31:允许脚本运行并在进一步的断点处停止(但不提交ajax请求),然后refreshes.
这是一种进步!
调试时导航到同一页:
juacala还建议了一种有效的解决方法。例如,如果您正在使用jQuery,从控制台运行delete $将在遇到任何jQuery方法时停止执行。我已经在上面所有的浏览器中测试过了,并且可以确认它正在工作。
更新(2015年3月):
最后,经过两年多的时间和近10K的浏览量,Alexander K给出了正确的答案。Google Chrome有自己的任务管理器,它可以在不关闭标签本身的情况下杀死标签进程,保持所有断点和其他东西不变。
我甚至在Chrome v22上测试过BrowserStack.com,发现当时也是这样工作的。
在IE或Firefox中调试时,Juacala的变通方法仍然很有用。
更新(2019年1月)
Chrome Dev Tools终于添加了一种适当的方法来停止脚本执行,这很好(尽管有一点隐藏)。有关详细信息,请参阅James Gentes的答案。
发布于 2020-03-31 21:14:57
2020年4月更新
从Chrome 80开始,当前的答案都不起作用。没有可见的“暂停”按钮-您需要长按“播放”按钮才能访问停止图标:
发布于 2014-01-01 02:26:43
你可以这样做的一种方式是暂停脚本,看看在你当前停止的地方跟随着什么代码,例如:
var something = somethingElse.blah;
在控制台中,执行以下操作:
delete somethingElse;
然后播放脚本:当它试图访问somethingElse
时,它将导致致命错误,并且脚本将死亡。瞧,你已经终止了这个脚本。
编辑:最初,我删除了一个变量。这还不够好。您必须删除JavaScript试图访问其属性的函数或对象。
发布于 2017-04-18 04:46:09
如果您在使用debugger
语句时遇到这种情况,
debugger;
..。然后我认为页面将一直运行下去,直到js运行时让步,或者下一次中断。假设您处于出错中断模式(暂停图标切换),您可以通过执行以下操作来确保中断发生:
debugger;throw 1;
或者调用一个不存在的函数:
debugger;z();
(当然,如果您正在尝试单步执行函数,这不会有什么帮助,尽管您可能可以在源面板中动态添加一个throw 1
或z()
或类似的东西,按ctrl-S保存,然后按ctrl-R刷新...然而,这可能会跳过一个断点,但如果您处于循环中,则可能会起作用。)
如果您正在执行循环,并且希望再次触发debugger
语句,则只需输入throw 1
即可。
throw 1;
然后,当你按下ctrl-R时,下一次投掷将被击中,页面将刷新。
(使用Chrome v38测试,大约2017年4月)
https://stackoverflow.com/questions/13134723
复制相似问题