我想每 3 秒打开一个链接。我正在使用setTimeout
功能,但是不起作用。所有链接将被打开一次。
for(var i=0; i < url.length-1; i++) {
setTimeout(function(){
linkaddress=url[i];
window.open(linkaddress);
}, 3000);
}
最佳答案
使用“let”而不是“var”进行 block 级作用域,然后将时间乘以 i 变量 ( more info )。代码:
var url = ["https://domain1.com","https://www.domain2.com"],
timeout = 3; // Time in second
for(let i=1; i <= url.length; i++){
setTimeout(function(){
linkaddress=url[i-1];
window.open(linkaddress);
}, i * timeout * 1000);
}
编辑:请注意,此代码使用 EcmaScript 6特点
关于javascript - setTimeout在循环中同时执行所有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55740627/