Javascript Chrome如何禁用调试器关键字或禁用暂停

Javascript Chrome如何禁用调试器关键字或禁用暂停,javascript,google-chrome,google-chrome-devtools,Javascript,Google Chrome,Google Chrome Devtools,我知道这里有一个“永不停顿”,但它不适用于这样的代码 setInterval(function(){ eval('debugger;'+Math.random()) },1000) 如果我找不到设置间隔,我就不能禁用暂停,这很烦人 是否有任何标志或以某种方式禁用此功能 编辑 我发现这个DevTools:无法禁用由调试器语句引起的断点与此问题相关,在测试中我发现了一个标志-expose debug as debug,但是如何使用这个标志来处理headless chrome --expose-

我知道这里有一个“永不停顿”,但它不适用于这样的代码

setInterval(function(){
  eval('debugger;'+Math.random())
},1000)
如果我找不到设置间隔,我就不能禁用暂停,这很烦人

是否有任何标志或以某种方式禁用此功能

编辑

我发现这个DevTools:无法禁用由调试器语句引起的断点与此问题相关,在测试中我发现了一个标志-expose debug as debug,但是如何使用这个标志来处理headless

chrome --expose-debug-as debug --headless --disable-gpu '<URL>' --repl
[0610/020053.677043:ERROR:headless_shell.cc(459)] Open multiple tabs is only supported when the remote debug port is set.

您唯一的选择就是将代码注入到覆盖eval并删除它的页面中

(function () {
  var _eval = window.eval;
  window.eval = function (str) {
    _eval(str.replace(/debugger;/,""));
  };
}());
eval("debugger;alert('a');")

您唯一的选择就是将代码注入到覆盖eval并删除它的页面中

(function () {
  var _eval = window.eval;
  window.eval = function (str) {
    _eval(str.replace(/debugger;/,""));
  };
}());
eval("debugger;alert('a');")

我通过禁用间隔和超时来实现这一点,一些站点使用它来阻止其他站点观看代码

我使用chrome headless在加载之前插入代码

无头启动

chrome --headless --disable-gpu <URL> --remote-debugging-port=9222
测试6


脚本完成后,在chrome中打开“localhost:9222”,检查页面,调试器现在不运行。

我通过禁用间隔和超时来完成此操作,一些站点使用此选项来阻止其他站点查看代码

我使用chrome headless在加载之前插入代码

无头启动

chrome --headless --disable-gpu <URL> --remote-debugging-port=9222
测试6


脚本完成后,在chrome中打开“localhost:9222”,检查页面,调试器现在不运行。

如果您不需要任何其他设置,只需在控制台中键入以下内容:

window.setTimeout = null

如果您不需要任何其他设置间隔,只需在控制台中键入以下内容:

window.setTimeout = null

嗯,删除代码@这不是一个选项,这不是我的工作。嗯,删除代码@这不是一个选项,这不是我的工作。听起来不错,我还试图清除所有间隔,eval replace可能会导致脚本损坏,因为某些编译器使用eval来加密代码。请注意,重写eval将破坏在其内部作用域之外(即在被调用方作用域中)创建变量的代码-只有内置eval可以做到这一点。听起来不错,我还在尝试清除所有间隔,eval replace可能会导致脚本中断,因为某些编译器使用eval来加密代码。请注意,重写eval将破坏在其内部作用域之外(即在被调用方作用域中)创建变量的代码-只有内置eval可以这样做。