Javascript clearTimeout不会将计时器重置为零

Javascript clearTimeout不会将计时器重置为零,javascript,timer,Javascript,Timer,我研究了很多相关的话题,但没有找到解决方案。我想创建一个脚本,该脚本将由于不活动而重定向到其他页面。我尝试了以下脚本的变体,但没有效果 $(函数(){ doStuff(); }); 函数doStuff(){ var定时器=null; window.onload=重置计时器; window.onmousemove=resetTimer; window.onmousedown=resetTimer;//捕捉触摸屏按键 window.onclick=resetTimer;//捕捉触摸板的点击 win

我研究了很多相关的话题,但没有找到解决方案。我想创建一个脚本,该脚本将由于不活动而重定向到其他页面。我尝试了以下脚本的变体,但没有效果

$(函数(){
doStuff();
});
函数doStuff(){
var定时器=null;
window.onload=重置计时器;
window.onmousemove=resetTimer;
window.onmousedown=resetTimer;//捕捉触摸屏按键
window.onclick=resetTimer;//捕捉触摸板的点击
window.onscroll=resetTimer;//捕捉到用箭头键滚动
window.onkeypress=重置计时器;
函数注销(){
document.getElementById('status').innerHTML='计时器读取'+计时器;
}
函数resetTimer(){
if(timer){window.clearTimeout(timer);};
timer=window.setTimeout(注销,1000);//时间以毫秒为单位
}
}


Rocket Hazmatt回答我的问题时解释说“timer”是一个内部id。我误解了timeoutID所代表的含义。

返回一个“timeoutID”,该id仅用于调用。你的
timer
变量不是“timer”,它只是一个内部ID。你到底想做什么?你期望定时器读到什么?你的代码和我期望的完全一样。除非在没有任何鼠标活动的情况下超过1秒,否则不会调用
注销
函数。正如Rocket所说,我不确定你对回显计时器id的期望是什么。我正在编写一个用户界面,允许某人将文件上传到服务器。出于安全和其他考虑,我希望将页面重定向到,以让用户知道页面超时,并需要在需要时刷新页面。我需要一个计时器机制来跟踪不活动。“计时器读取”的目的只是为了测试,这样我就可以看到脚本是否按预期工作了。@Brad:你的代码工作得很好。你有什么问题?你的预期结果是什么?如果你想要一个真正的计时器,你必须做一个。您可以保存开始/结束
日期
s并计算它。