我想每3秒打开一个链接。我正在使用setTimeout
函数,但是它不起作用。所有链接将被打开一次。
for(var i=0; i < url.length-1; i++) {
setTimeout(function(){
linkaddress=url[i];
window.open(linkaddress);
}, 3000);
}
答案 0 :(得分:1)
使用“ let”代替“ var”进行块级作用域,然后将时间乘以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个功能
答案 1 :(得分:0)
改用setInterval
url = ['a', 'b', 'c'];
var i = 0;
var interval = setInterval(function() {
if (i <= url.length - 1) {
///linkaddress = url[i];
//window.open(linkaddress);
console.log(url[i]);
i++;
} else {
clearInterval(interval);
}
}, 3000);