我现在实现这样一个功能: 如果用户长时间在页面没有动作,就让他注销,重新登陆! 我的思路是:用用户的鼠标位置判断在一个页面是否长时间有没有动作,就是在一个指定的时间内,判断用户起始和结束时间的鼠标位置发生变化没有,如果变化了就说明有动作发生. 现在想请问大虾们: 如何实现上面所说的, 判断鼠标位置的功能 (有代码提示最好) 如果不能实现,大家还有没有好的思路,谢谢!
我现在实现这样一个功能: 如果用户长时间在页面没有动作,就让他注销,重新登陆! 我的思路是:用用户的鼠标位置判断在一个页面是否长时间有没有动作,就是在一个指定的时间内,判断用户起始和结束时间的鼠标位置发生变化没有,如果变化了就说明有动作发生. 现在想请问大虾们: 如何实现上面所说的, 判断鼠标位置的功能 (有代码提示最好) 如果不能实现,大家还有没有好的思路,谢谢!
document.onkeydown //键盘按下时触发...然后你可以利用setTimeout之类的控制...
var ts;
window.onload=function()
{
ts=setInterval("checkTime()",1000);//没秒执行一次checkTime()函数
}
function checkTime()
{
NowSec++;
if(NowSec>MaxSec)//超过规定的时间
{
alert("您已经超过"+MaxSec+"秒没动了!");//=======这里改为你的其他代码
clearInterval(ts);//清除定时器
}
}
document.onmousemove=function(){NowSec=0;}//有活动则将NowSec变量值变为0
document.onkeydown=function(){NowSec=0;}//有活动则将NowSec变量值变为0
你记录鼠标,如果他把窗口最小化的话,不知道鼠标位置会有怎么样的反应,没测试过.
每次对Body的所有操作,如:onclick, onmouseover,onmouseout,onkeydown等事件都触发记录一下最后操作时间.
var func1 = function () {
这里定义超时未动作的检查.
}
而用setInterval(func1, 1000);去定时检查当前是否超过指定时间未动作了.
如果鼠标不在页面上.就不会有MOUSE事件.
用JS 可以尝试.因为如果用户不在操作本页(在页上移动鼠标等到...),就不会有MOUSE事件.不过要加一个 onmousewheel事件,也就是滚轮事件.
用session也有不合理的地方.如果用户正在浏览此页,而此页的内容很长.如果时间超过了SESSION 就会注销.程序是管不住人的. 在醒目的地方加上一小段说明文字,如"如果20分钟之内没有任何操作,**系统将会自动注销".