Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript循环的随机睡眠?_Javascript_Html - Fatal编程技术网

Javascript循环的随机睡眠?

Javascript循环的随机睡眠?,javascript,html,Javascript,Html,我正在做一个URL开启器。我想延迟打开每个链接。时间应该是随机的。从2秒到9秒 有人能帮我怎么做吗? 我尝试了一种在Stack上找到的方法。但链接在固定时间后打开。i、 e 5秒。。。或者任何时候我给。。。那么如何以随机的方式制作呢 表格编号: <form method="post" action=""> <br /> <textarea name="list_urls" id="list_urls" cols="60" rows="20"

我正在做一个URL开启器。我想延迟打开每个链接。时间应该是随机的。从2秒到9秒

有人能帮我怎么做吗? 我尝试了一种在Stack上找到的方法。但链接在固定时间后打开。i、 e 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>

函数睡眠(毫秒){
var start=new Date().getTime();
对于(变量i=0;i<1e7;i++){
如果((新日期().getTime()-start)>毫秒){
打破
}
}
}
函数open_all(){
var url=document.getElementById(“列表URL”).value;
var url=url.split(/\s+/);
var totalno=url.length;
var s;
对于(变量i=0;i
使用
setTimeout
Math.random()

函数createTimeout(链接){
var duration=Math.floor(Math.random()*6)+1;//b/w 1和6
setTimeout(函数(){
窗口。打开(链接);
},持续时间);
}
函数open_all(){
var url=document.getElementById(“列表URL”).value;
var url=url.split(/\s+/);
var totalno=url.length;
var s;
对于(变量i=0;i




您只需要使用
窗口的方法

代码不会在这里的堆栈溢出代码段环境中运行,但您可以看到它正在工作

还有几件事:

  • 不要使用内联HTML事件处理属性(
    onclick
    onmouseover
    等)创建意大利面代码时,会导致重复 不遵循W3CDOM事件标准
  • 如果您没有在任何地方提交数据,请不要使用
//获取DOM引用
var btnGo=document.getElementById(“go”);
var btnReset=document.getElementById(“重置”);
var list=document.getElementById(“列表URL”);
//设置事件处理程序:
btnGo.addEventListener(“单击”,全部打开);
btnReset.addEventListener(“单击”,函数(){url.value=”“;});
函数open_all(){
//将输入分离到数组中
var url=list.value.split(/\s+/);
//循环数组中的项
forEach(函数(值){
//获取2到8之间的随机数
变量延迟=(数学地板(数学随机()*7))+2;
//如果不存在协议,则追加“http://”
var url=(value.indexOf('http://')==-1&&value.indexOf('https://'))==-1)?
“http://”+value:value;
//等待延迟时间1000(毫秒)后调用open函数
setTimeout(函数(){open(url);},延迟*1000);
});
}
功能打开(s){
窗口。打开(s)
}

duddde!!使用设置超时<代码>用于(变量i=0;i<1e7;i++){
YUK
function createATimeout(link) {
  var duration = Math.floor(Math.random() * 6) + 1; // b/w 1 and 6
  setTimeout(function() {
    window.open(link);
  }, duration);
 }
  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;
                    createATimeout(s);
            }
        }
    }


<form method="post" action="">
      <br />
      <textarea placeholder="enter list of urls" 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>