使用window.open();打开新标签后延迟

时间:2013-08-03 04:41:30

标签: javascript tabs delay window.open

我正在寻找javascript代码,它会在特定的时间间隔后自动打开新的标签页(窗口)。

执行第一个url后,会忽略setTimeout()/ setIntervals()吗? 请帮忙!

<html>
<head>
<script type="text/javascript">
function open_win() {
setInterval(window.open("http://www.google.com"), 1000);
setInterval(window.open("http://www.yahoo.com"), 1000);
setInterval(window.open("http://www.bing.com"), 1000);
}
</script>
</head>

<body>
<form>
<input type=button value="Open Windows" onclick="open_win()">
</form>
</body>

谢谢

1 个答案:

答案 0 :(得分:0)

首先,您不想使用setIntervalsetInterval

  

重复调用函数或执行代码片段,每次调用该函数之间都有固定的时间延迟。

您想使用setTimeout

  

在指定的延迟后调用函数或执行代码段。

下一个问题是setTimeout想要一个函数作为它的第一个参数,但window.open返回一个对窗口对象的引用。您希望将这些window.open调用包含在函数中:

function open_win() {
    setTimeout(function() { window.open("http://www.google.com") }, 1000);
    setTimeout(function() { window.open("http://www.yahoo.com")  }, 1000);
    setTimeout(function() { window.open("http://www.bing.com")   }, 1000);
}

您的版本会打开Goog​​le标签,因为在构建第一个window.open("http://www.google.com")来电的参数列表时会执行setInterval调用。当你传递一个窗口参考时,你可能会从setInterval获得一个异常或者其他东西,所以其余部分甚至都没有到达。