Javascript在延迟

时间:2017-08-07 02:31:46

标签: javascript

我根据自己的喜好使用this script,一切正常,但我想要一个更加可靠的脚本。这是我的代码:

<script type="text/javascript">
function open_win() {
    setTimeout(function() { window.open("http://example.com/t101.php") }, 1000);
    setTimeout(function() { window.open("http://example.com/t102.php")  }, 1000);
    setTimeout(function() { window.open("http://example.com/t103.php")   }, 1000);
    setTimeout(function() { window.open("http://example.com/t104.php")   }, 1000);

    setTimeout(function() { window.open("http://example.com/t105.php") }, 120000);
    setTimeout(function() { window.open("http://example.com/t106.php")  }, 120000);
    setTimeout(function() { window.open("http://example.com/t107.php")   }, 120000);
    setTimeout(function() { window.open("http://example.com/t108.php")   }, 120000);

    setTimeout(function() { window.open("http://example.com/t109.php") }, 240000);
    setTimeout(function() { window.open("http://example.com/t110.php")  }, 240000);
    setTimeout(function() { window.open("http://example.com/t111.php")   }, 240000);
    setTimeout(function() { window.open("http://example.com/t112.php")   }, 240000);

    }
</script>
<input type=button value="Start Scan" onclick="open_win()">

我将URL打开为4个组,每个组只需不到2分钟,每个组执行的确切时间不是特定/知道但不到2分钟。

我想在第一组关闭时打开每个组而不是等待2分钟,而不是在特定时间打开每个组。以上链接使用window.close();在执行时自动关闭。

还有机会在不放入此功能的情况下打开100个这样的链接吗?所有链接都以这样的编号结尾。

我是JavaScript的初学者。如果不合适,请道歉。

1 个答案:

答案 0 :(得分:1)

将window.open调用存储到如下变量中:

var a = window.open(/*url...*/);

该窗口关闭后,它的closed属性将成立。只需设置一个setInterval()来检查每一秒左右,检查它是否关闭然后打开一个新窗口。这个question有你的答案。像下面这样的东西可以工作:

var a = window.open("urla");
setInterval(function(){if (a.closed) {window.open("urlb");}}, 1000);

如果要打开100个链接,可以创建一个for循环,单独打开每个链接:

for (var a = 100; a < 200; a++) { window.open("http://example.com/t" + a + ".php"); }

^将打开从100到199的链接。