我需要在Chrome控制台中执行Javascript,但要延迟一些时间。该怎么办?
我需要这个的原因是,焦点从网页(或网页的某个元素)更改后会立即重绘。因此,我想延迟几秒钟来启动在控制台中执行的脚本,以便将焦点更改为正在使用的页面上正确的元素。
编辑1:Dinesh Padiyan。
对我不起作用,屏幕截图:
答案 0 :(得分:4)
您可以像这样扩展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);
答案 1 :(得分:1)
function delay (ms){ return new Promise(resolve => setTimeout(resolve, s)); }
“异步”工作演示: http://zarsoft.info/software/_Test/pause_javascript/index.html
答案 2 :(得分:0)
如果出于调试目的需要延迟,则需要在代码中添加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); // 3s delay