以间隔js打开和关闭网站

时间:2014-12-26 19:15:36

标签: javascript for-loop timer settimeout window.open

我需要构建一个打开网站的程序,等待大约5秒,然后关闭网站并打开一个不同的网站,它需要循环大约5次。网站' URL将像我的代码一样发生变化。我只是不知道如何处理整个计时器代码。我的代码......

<script>
var x = Math.floor(Math.random() * 20) + 1;
var y = Math.floor(Math.random() * 28) + 1;


for (i = 0; i < 5; i++) { 
        var wnd = window.open("http://www.random.com/x=" + x + "y=" + y);
        setTimeout(function() {
        wnd.close();
    }, 5000);
  };
</script>

2 个答案:

答案 0 :(得分:0)

您必须将代码更改为:

var x = Math.floor(Math.random() * 20) + 1;
var y = Math.floor(Math.random() * 28) + 1;


var timesRun = 0;
var interval = setInterval(function(){
    timesRun += 1;
    if(timesRun === 5){
        clearInterval(interval);
    }
        var wnd = window.open("http://www.random.com/x=" + x + "y=" + y);
        setTimeout(function() {
            wnd.close(); 
        }, 5000);
}, 5000); 

您的代码将打开5个窗口,然后在5秒后逐个关闭它们。这段代码应该做你想要的

答案 1 :(得分:0)

您可能希望等待一个窗口关闭以打开另一个窗口!代码看起来像这样:

function openURL(counter, max) {
  var x = Math.floor(Math.random() * 20) + 1;
  var y = Math.floor(Math.random() * 28) + 1;
  var url = "http://www.random.com/?x=" + x + "y=" + y;

  if(counter <= max) {
    var wnd = window.open(url);
    setTimeout(function() {
        wnd.close();
        openURL(++counter, max);
    }, 5000);
  }
}

openURL(1, 5);