我现在实现这样一个功能: 如果用户长时间在页面没有动作,就让他注销,重新登陆!    我的思路是:用用户的鼠标位置判断在一个页面是否长时间有没有动作,就是在一个指定的时间内,判断用户起始和结束时间的鼠标位置发生变化没有,如果变化了就说明有动作发生.    现在想请问大虾们:               如何实现上面所说的, 判断鼠标位置的功能 (有代码提示最好)         如果不能实现,大家还有没有好的思路,谢谢!    

解决方案 »

  1.   

    document.onmousemove //鼠标移动时触发...
    document.onkeydown //键盘按下时触发...然后你可以利用setTimeout之类的控制...
      

  2.   

    我来实现  var MaxSec=10,NowSec=0;//注意这个是按秒来算的,你可以改为别的
      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
      

  3.   

    你这个想法也有点太奇怪了,为什么不用session或者cookie呢?或者你记录他页面刷新变动的时间也可以.
    你记录鼠标,如果他把窗口最小化的话,不知道鼠标位置会有怎么样的反应,没测试过.
      

  4.   

    我建议你可以这样:
    每次对Body的所有操作,如:onclick, onmouseover,onmouseout,onkeydown等事件都触发记录一下最后操作时间.
    var func1 = function () {
       这里定义超时未动作的检查.
    }
    而用setInterval(func1, 1000);去定时检查当前是否超过指定时间未动作了.
      

  5.   

    用JS去判断鼠标?
    如果鼠标不在页面上.就不会有MOUSE事件. 
    用JS 可以尝试.因为如果用户不在操作本页(在页上移动鼠标等到...),就不会有MOUSE事件.不过要加一个 onmousewheel事件,也就是滚轮事件.
    用session也有不合理的地方.如果用户正在浏览此页,而此页的内容很长.如果时间超过了SESSION 就会注销.程序是管不住人的. 在醒目的地方加上一小段说明文字,如"如果20分钟之内没有任何操作,**系统将会自动注销".