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可以这样做。