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

时间:2017-02-28 20:32:37

标签: javascript google-chrome debugging google-chrome-devtools

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

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

我怎样才能实现?

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

document.body.outerHTML = document.body.outerHTML
for(t=setTimeout(()=>{}); t; --t) clearTimeout(t)

但:

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

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

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

1 个答案:

答案 0 :(得分:8)

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

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

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

Disable

我后来通过输入“启用JavaScript”并点击 Enter 重新启用了JavaScript。执行此操作后,执行继续,计时器从中断处继续。

Paused

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