如何使用 JavaScript 检测用户不活动?

mif*_*con 2 javascript

我正在尝试创建一个 wordpress 页面,在一段时间后将您注销而没有任何活动。现在我只是在测试“检测不活动并做某事”的一部分(关键部分)。我在这里找到了一些部分有效的代码;这是代码:

<script>
var timeout;
document.onmousemove = function(){
clearTimeout(timeout);
timeout = setTimeout(function(){alert("move your mouse");}, 10000);
}
</script>
Run Code Online (Sandbox Code Playgroud)

现在设置为每 10 秒发送一次警报,这样我就可以立即看到它正在工作(以后会更长)。反正; 当我在页面上运行它时,它什么也不做。我可以在那里坐 5 分钟,什么也没有发生。但是,如果我将该选项卡留在浏览器中,它会立即开始工作,并在没有应有活动的情况下每 10 秒发送一次警报。

但是如果我只是坐在那个页面上什么都不做,整个功能就不起作用。有人能帮忙吗?谢谢...

imb*_*aby 7

试试这个:

function onInactive(ms, cb){

    var wait = setTimeout(cb, ms); 
    document.onmousemove = document.mousedown = document.mouseup = document.onkeydown = document.onkeyup = document.focus = function(){
        clearTimeout(wait);
        wait = setTimeout(cb, ms);
    };
}
Run Code Online (Sandbox Code Playgroud)

JSFiddle:

http://jsfiddle.net/acNfy/4

您必须将鼠标悬停在右下方窗口并保持非活动状态 5 秒钟才能查看结果:)

  • 接受的答案有责任这些事件的任何现有事件处理程序都将被覆盖。这里有几个优秀且更安全的问题答案:http://stackoverflow.com/questions/667555/ (4认同)