2013-08-03 65 views
0

我正在尋找將在特定時間間隔後自動打開新選項卡(窗口)的JavaScript代碼。使用window.open()打開新選項卡後的延遲時間?

一旦第一個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> 

謝謝

+0

setInterval將繼續執行,直到您清除它。如果你確實得到這個工作,你會不斷地每秒鐘打開新的窗口。 – 2013-08-03 04:51:43

+0

感謝您的快速回復Mike W,我很遺憾地忘記提到第一個功能是「自動提交」,在提交過程中,似乎所有的定時器都變得無效和短路。 – user2647691

回答

0

首先,你不希望使用setInterval爲此,setInterval

調用一個函數或重複執行的代碼片段,有一個固定的每次調用該函數之間的時間延遲。

你想用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); 
} 

你的版本將打開谷歌標籤,因爲window.open("http://www.google.com")調用將在構建參數列表第一setInterval調用執行。大概你會得到一個異常或從setInterval當你傳遞一個窗口引用,所以其他人甚至沒有達到。

相關問題