-1

如何 setTimeout 只有 1 次循环?

这段代码永远循环,我只希望它循环 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>
4

2 回答 2

1

每次提交表单时,页面都会重新加载并setTimeout再次调用。

您必须在每次加载页面时跟踪它。例如:

sessionStorage.submitted = new Date().toString();

然后检查:

if (!sessionStorage.submitted)
    var myTimer = setTimeout(doStuff, 1000);

(注意:它在 IE7 中不起作用。)

顺便说一句,使用 POST 提交到静态 HTML 页面有什么意义?也许有一些我们没有看到的 PHP 代码?

于 2013-05-02T15:36:36.153 回答
0

每次您的页面发布然后加载时,它都会再次调用 setTimeout。这是你想要的功能吗?

我认为您可能想要做的是:

var myTimer = function(){setTimeout(doStuff, 1000)};
于 2013-05-02T15:39:34.173 回答