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

时间:2014-06-21 04:59:02

标签: javascript

我正在尝试使用wordpress页面,在一段时间后没有任何活动。现在我只是测试“检测不活动并做一些事情”这一部分(关键部分)。我在这里发现了一些部分有效的代码;这是代码:

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

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

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

2 个答案:

答案 0 :(得分:3)

请改为尝试:

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);
    };
}

的jsfiddle:

http://jsfiddle.net/acNfy/4

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

答案 1 :(得分:-1)

我也会尝试在窗口加载时触发超时。

对于之前的不完整答案,道歉。递归的setTimeout可能就是你要找的东西。

(function interaction(){
    setTimeout(function(){
    // check for movement,
    if(movement...) {
        // if movement do nothing
        }
    else {
        interaction();



    },10000);

})();
相关问题