在浏览器控制台中执行时暂停 Javascript

Pause Javascript when executing it in browser console

我需要在 Chrome 的控制台中延迟执行 Javascript。如何做到这一点?

我需要这个的原因是,一旦焦点从网页(或网页的某个元素)改变,它就会被重新绘制。因此,我想延迟几秒启动我在控制台中执行的脚本,这样我就可以将焦点转移到我正在使用的页面上的正确元素上。

编辑 1:Dinesh Padiyan。

对我不起作用,请看屏幕截图:

如果出于调试目的需要延迟,则需要在代码中添加 debugger; 语句。当您添加调试器并打开您的开发人员工具时,脚本执行将在您的 debugger; 语句处暂停,您可以在开发人员工具中检查您的代码。

console.log('I will execute');
debugger; // execution will pause at this line
console.log("I won't execute until you say so");

如果您的站点行为需要延迟执行,可以使用setTimeout()延迟调用。

console.log('I will be printed immediately');
setTimeout(function() {
  console.log('I will be printed after 5s');
}, 5000); // 5s delay

您可以像这样扩展 console 对象,然后使用自定义 logLater 方法。

console.logLater = (message, delay) => setTimeout(function() {
  console.log(message);
}, delay);

console.log('I will be printed immediately');

console.logLater('I will be printed after 3 seconds', 3000);

function delay (ms){   return new Promise(resolve => setTimeout(resolve, s));  }

"async" 工作演示: http://zarsoft.info/software/_Test/pause_javascript/index.html