如何setTimeout只有1次循环?
这段代码永远循环,我只希望它只循环一次。
这是我的代码:
<html>
<head>
<script language="JavaScript" type="text/javascript">
function doStuff() {
document.myform.submit();
}
var myTimer = setTimeout(doStuff, 1000);
</script>
</head>
<body>
<form name="myform" action="" method="post">
</form>
</body>
</html>
答案 0 :(得分:1)
每次提交表单时,都会重新加载页面并再次调用setTimeout
。
每次加载页面时都必须跟踪页面。例如:
sessionStorage.submitted = new Date().toString();
然后检查:
if (!sessionStorage.submitted)
var myTimer = setTimeout(doStuff, 1000);
(注意:它在IE7中不起作用 - 。)
顺便说一下,使用POST提交静态HTML页面有什么意义?也许我们没有看到一些PHP代码?
答案 1 :(得分:0)
每当您的网页发布然后加载时,它都会再次调用setTimeout。这是你想要的功能吗?
我认为您可能想要做的是:
var myTimer = function(){setTimeout(doStuff, 1000)};