这里我想在tout时间超时,但是setTimeout()没有使用tout作为超时参数。 如何解决。
<script language="JavaScript" type="text/javascript">
var tout=10*1000;
var t = setTimeout(document.myform.submit(),tout));
</script>
答案 0 :(得分:3)
var tout = 10 * 1000;
var t = setTimeout(function() {
document.myform.submit();
}, tout);
了解如何正确使用setTimeout here。第一个参数应该是函数引用,第二个参数应该是毫秒。
答案 1 :(得分:2)
var delay = 60000;
var timer = setTimeout(function() {
document.myform.submit();
}, delay);
甚至更好
var delay = 10000,
f = document.myform,
timer = setTimeout(f.submit.bind(f), delay);
注意:Function.prototype.bind
取决于ES5。
答案 2 :(得分:0)
你遇到的问题是你在setTimeout行调用了submit函数,并将调用它的结果传递给setTimeout。
您要做的是将对函数的引用传递给setTimeout:
var t = setTimeout(document.myform.submit, tout));
不幸的是,它并没有完全削减它,因为提交功能并不知道它被调用的形式。您还需要绑定上下文:
var t = setTimeout(document.myform.submit.bind(document.myform), tout));
Function.prototype.bind返回对函数的引用。