这个问题在这里已有答案:
我想每隔3秒打开一个链接。我使用setTimeout
函数,但它不起作用。所有链接都将打开一次。
for(var i=0; i < url.length-1; i++) {
setTimeout(function(){
linkaddress=url[i];
window.open(linkaddress);
}, 3000);
}
对块级别作用域使用“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功能
请改用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);