javascript - 如何保持每次提交后延迟10秒

标签 javascript jquery

我下面有这个 Javascript

并且想在 FireFox 中工作 我想在每次提交后保留 5 秒的延迟

<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.cid = myStringArray[i];
document.inform.pwd = "xxxxxxxx";
   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="text" name="cid"  />
<input type="hidden" name="pwd"  />
 <input type="hidden" name="throttle" value="999" />
    <input type="submit" value="go" onclick="test()">
  </form>
 </body>
</html>

我尝试在每次提交后手动保持 sleep 并尝试使用 setTimeOut ,但没有任何效果。

有人可以帮我吗

编辑部分

<html>
<head>
<script type="text/javascript">
  var interval = window.setInterval(iterate, 5000);
var myStringArray = ["user1", "user2", "user3", "user4"];

  function iterate() {
 iterate.arr = iterate.arr || myStringArray.slice(0);

    //if it still has elements left
    if(iterate.arr.length > 0) {
        document.inform.cid = iterate.arr.pop(); //remove the top one
alert(document.inform.cid);
        document.inform.pw = "xxxx";
        document.inform.target = iterate.arr.length; // a different target each time - length of the arr
        document.inform.submit();
    } else {
        window.clearInterval(interval); //no more left cancel it
    }
};

</script>
</head>
<body>
 <form name="inform" method="get"  target="newWin" action="https://www.google.co.in/">
  <input type="text" name="cid" />
<input type="password" name="pw" />
<input type="hidden" name="throttle" value="999" />
    <input type="submit" value="go" onclick="iterate()"/>
  </form>
</body>
</html>

最佳答案

你可以使用类似的东西(虽然没有测试过):

    var interval = window.setInterval(iterate, 5000);
    var myStringArray = ["user1", "user2", "user3", "user4"];

function iterate() {
    iterate.arr = iterate.arr || myStringArray.slice(0); //set a private array to cache

    //if it still has elements left
    if(iterate.arr.length > 0) {
    //thought there was more than one formon the page - but if only one then we can reference by its name - cid

        ///:document.inform.cid = iterate.arr.pop(); //remove the top one
    iterate.arr.pop();
        document.inform.pwd = "xxxxxxxx";
        document.inform.target = iterate.arr.length; // a different target each time - length of the arr
        document.inform.submit();
    } else {
        window.clearInterval(interval); //no more left cancel it
    }


};

关于javascript - 如何保持每次提交后延迟10秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13262899/

相关文章:

jquery - POST Json 到 Razor 页面

javascript - 如何在悬停时显示另一个既不是兄弟也不是 child 的div

javascript - 加载一定数量后开始播放 HTML5 视频

javascript - 结合粘性导航和过渡

javascript - Vue.js 和 Webpack 中分离脚本、样式和模板

javascript - 调用请求后如何重新渲染屏幕?

javascript - Node JS Sequelize如何统计关联数据

jquery - 从数据库与文件系统中检索静态数据

带有 rel 值的 jQuery 过滤器选择菜单

javascript - 检查选择框中是否有重复条目