2012-11-06 47 views
1

我想保持延遲10秒鐘每個提交如何在每次提交後在For循環內保持延遲?

後,這是我的示例程序

<html> 
<head> 
<script type="text/javascript"> 
function sleep(ms) 
    { 
     var dt = new Date(); 
     dt.setTime(dt.getTime() + ms); 
     while (new Date().getTime() < dt.getTime()); 
    } 

function test() { 
var windowCounter = 1; 
var myStringArray = [ "user1", "user2" , "user3" , "user4" ] 
var len = myStringArray.length; 
for (var i=0; i<3; ++i) { 
    document.inform.target = windowCounter++; // a different target each time 
    document.inform.submit(); 
} 
} 
</script> 
</head> 
<body > 
    <form name="inform" target="newWin" action="https://www.google.co.in/"> 
<input type="hidden" name="throttle" value="999" /> 
    <input type="submit" value="go" onclick="test()"> 
    </form> 
</body> 
</html> 

我嘗試了這些選項至今

for (var i=0; i<3; ++i) { 

if(i==1) 
sleep(10000); 
if(i==2) 
sleep(10000); 

    document.inform.target = windowCounter++; // a different target each time 
    document.inform.submit(); 
} 

但仍然是所有的提交被稱爲在同時

然後

var windowCounter = 1; 
for (var i=0; i<=2; i++) { 
    setTimeout(function() { 
     document.inform.target = windowCounter++; 
     document.inform.cid.value="XXXX"; 
     document.inform.pw.value="xxxxx"; 
     document.inform.submit(); 
    }, i*10000); // 
} 

但是,當我加入這個超時我漸漸有些CR-NS-錯誤 - 不使用(由於超時)

最後,我試過了,但仍是在同一時間被稱爲

var len = 1; 
    var len2 = 1; 
    var len3 = 1; 

    if(len==1) 
    { 
    sleep(4000); 
     document.inform.target = 1; // a different target each time 
     document.inform.submit(); 
    } 


    if(len2==1) 
    { 
    sleep(4000); 
     document.inform.target = 2; // a different target each time 
     document.inform.submit(); 
    } 

有沒有解決方案?

回答

1

你可以嘗試創建這樣的函數,並調用它: -

var i = 1;      
    function A() {   
    setTimeout(function() {  
    i++;      
    if (i < 10) {    
    A();    
    }       
    }, 3000) 
} 

A(); 
0

我真的不明白,很多你的問題,但是這可能/可能是有用的: 如果每種形式都有測試()作爲內聯onclick函數,那麼這應該可能以某種方式工作。

var windowCounter = 0; 
function test() { 
    windowCounter++; 
    setTimeout(function(){ 
    if(windowCounter == 1) // bla 
    else if(windowCounter == 2) // bla 
    }, 10000); 
}