繁体   English   中英

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

[英]How to detect user inactivity with JavaScript?

我正在尝试建立一个wordpress页面,该页面在一定时间间隔后将您注销,并且没有任何活动。 现在,我只是在测试“检测不活动并执行某些操作”部分(关键部分)。 我在这里找到了部分起作用的代码。 这是代码:

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

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

但是如果我只是坐在那页上什么都不做,那么整个功能将无法正常工作。 有人能帮忙吗? 谢谢...

尝试以下方法:

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秒钟才能看到结果:)

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

抱歉,对于之前的不完整答案。 递归setTimeout可能是您想要的。

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



    },10000);

})();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM