我想在每次提交后延迟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(由于超时)
FInally我试过,但仍在同时被叫
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();
}
有没有解决方案?
答案 0 :(得分:1)
你可以尝试创建这样的函数并调用它: -
var i = 1;
function A() {
setTimeout(function () {
i++;
if (i < 10) {
A();
}
}, 3000)
}
A();
答案 1 :(得分:0)
我真的不太了解你的问题,但这可能/可能有用: 如果每个表单都有test()作为内联onclick函数,那么这可能会以某种方式工作。
var windowCounter = 0;
function test() {
windowCounter++;
setTimeout(function(){
if(windowCounter == 1) // bla
else if(windowCounter == 2) // bla
}, 10000);
}