我正在开启一个URL。我想延迟打开每个链接。时间应该是随机的。从2秒到9秒。
任何人都可以帮我怎么做? 我尝试了一种在Stack上找到的方法。但链接在固定时间后打开。即5秒......或者我给的任何时间......那么如何以随机的方式制作它?
表格代码:
<form method="post" action="">
<br />
<textarea name="list_urls" id="list_urls" cols="60" rows="20"></textarea>
<br />
<br />
<input value="Open URLs" class="submit" type="button" onClick="open_all();">
<br />
<input type="reset" value="Reset!">
<br/>
</form>
JS代码
<script>
function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds){
break;
}
}
}
function open_all() {
var urls = document.getElementById("list_urls").value;
var urls = urls.split(/\s+/);
var totalno = urls.length;
var s;
for (var i = 0; i < totalno; i++) {
s = urls[i];
if (s) {
if (s.substr(0, 7) != 'http://' && s.substr(0, 8) != 'https://')
s = 'http://' + s;
sleep(5000);
window.open(s)
}
}
return false;
}
</script>
答案 0 :(得分:0)
将<dependencies>
与setTimeout
Math.random()
答案 1 :(得分:0)
您只需使用window
对象的setTimeout()
方法即可。
代码不会在Stack Overflow代码段环境中运行,但您可以看到它正常工作 here 。
其他一些事情:
onclick
,
onmouseover
等)因为他们创建了意大利面条代码,导致重复
代码并且不遵循W3C DOM事件标准。<form>
。
// Get DOM References
var btnGo = document.getElementById("go");
var btnReset = document.getElementById("reset");
var list = document.getElementById("list_urls");
// Set up event handlers:
btnGo.addEventListener("click", open_all);
btnReset.addEventListener("click", function(){ urls.value = ""; });
function open_all() {
// Separate input into an array
var urls = list.value.split(/\s+/);
// Loop over the items in the array
urls.forEach(function(value){
// Get random number between 2 and 8
var delay = (Math.floor(Math.random() * 7)) + 2;
// Append "http://" if no protocol present
var url = (value.indexOf('http://') === -1 && value.indexOf('https://') === -1) ?
'http://' + value : value;
// Call the open function after waiting the delay times 1000 (for milliseconds)
setTimeout(function() { open(url); }, delay * 1000);
});
}
function open(s){
window.open(s)
}
&#13;
<div>
<textarea name="list_urls" id="list_urls" cols="60" rows="20"></textarea>
</div>
<div>
<input value="Open URLs" class="submit" type="button" id="go">
</div>
<div>
<input type="button" value="Reset!" id="reset">
</div>
&#13;