如何在页面上停止脚本执行?

Qwe*_*tiy 5 javascript debugging google-chrome google-chrome-devtools

我在Chrome中打开了一个随机网页.我正在使用启用的javascript打开它,因为我需要执行一些脚本.

从某些时刻开始我想停止脚本执行,因此不应该运行任何计时器或事件处理程序.使用无限循环的时候不行,因为我希望页面能够响应.

我怎么能做到这一点?

以下代码部分完成了我的需要

document.body.outerHTML = document.body.outerHTML
for(t=setTimeout(()=>{}); t; --t) clearTimeout(t)
Run Code Online (Sandbox Code Playgroud)

但:

  1. 事件监听器document和ajax回调将继续存在
  2. 这会导致解析html,因此可以通过解析来更改一些无效标记

另外,我希望有一些方法可以通过devtools实现,而无需实际与页面代码进行交互.

PS:如果我需要使用其他浏览器,那没关系.

Gid*_*zer 8

您可以使用DevTools中的命令菜单随时在页面上启用/禁用JavaScript.您可以使用Cmd+ Shift+ P(Mac)或Ctrl+ Shift+ P(Windows/Linux)访问此菜单.

开始输入Disable JavaScript并点击Enter以禁用脚本执行.

在下面的示例中,我运行了一个异步计时器,每500ms记录一次增量计数.禁用JavaScript后,执行暂停,并且没有其他任何内容记录到控制台.

禁用

我后来通过输入"启用JavaScript"并点击来重新启用JavaScript Enter.执行此操作后,执行继续,计时器继续执行.

已暂停

注意:尝试禁用JavaScript时仍在运行的任何同步代码都不会被终止.它将完成,然后将禁用进一步的执行.