1

我想在每次提交后保持 10 秒的延迟

这是我的示例程序

<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-error-not-available (由于超时)

最后我试过了,但仍然被同时调用

 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();
    }

有什么解决办法吗??

4

2 回答 2

1

您可以尝试创建这样的函数并调用它:-

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

 A(); 
于 2012-11-06T19:49:39.323 回答
0

我不太了解您的大部分问题,但这可能/可能有用:如果每个表单都有 test() 作为内联 onclick 函数,那么这可能应该以某种方式起作用。

var windowCounter = 0;
function test() { 
   windowCounter++;
   setTimeout(function(){
     if(windowCounter == 1) // bla
     else if(windowCounter == 2) // bla
  }, 10000);
}
于 2012-11-06T19:56:05.380 回答