簡體   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