2017-09-13 25 views
2

我寫的方法對mouse click,KEYUP和keypress復位超時,但我意識到,它不會對輸入字段檢查,所以當我積極字段會超時打字。 這裏是我的代碼:超時時間計數未檢測到輸入字段

var idleInterval = setInterval(timerIncrement, 10000); 
var idleTime = 0; 
$(document).ready(function() { 
    //Increment the idle time counter every minute. 
    //Zero the idle timer on mouse movement. 
    $(this).mousemove(function (e) { 
    idleTime = 0; 
    }); 
    $(this).keypress(function (e) { 
    idleTime = 0; 
    }); 
    $(this).keyup(function (e) { 
    idleTime = 0; 
    }); 
}); 

function timerIncrement() { 
    idleTime = idleTime + 1; 
    if (idleTime > 4) { 
    window.location.replace('/timeout.aspx'); 
    } 
} 

回答

0

您可以使用此jQuery的功能檢測網頁上的所有按鍵:

$(document).on("keypress", function (e) { 
    idleTime = 0; 
}); 

所以,你的代碼應該是這樣的:

var idleInterval = setInterval(timerIncrement, 10000); 
var idleTime = 0; 

function timerIncrement() { 
    idleTime = idleTime + 1; 
    if (idleTime > 4) { 
     window.location.replace('/timeout.aspx'); 
    } 
} 

$(document).ready(function() { 

    $(this).mousemove(function (e) { 
     idleTime = 0; 
    }); 
    $(document).on("keypress", function (e) { 
     idleTime = 0; 
    }); 

}); 
+0

@ PredatorIWD我想你的建議,它實際上與鼠標移動工作,它復位定時器,而與輸入字段內按鍵,好像oncewhen是按鍵事件輸入區域內從文檔中分離得到裏面。 – Mindan

+0

@Mindan即使在輸入欄裏面也應該註冊它。也許你可以在這裏爲它提供html,或者搜索更多註冊所有按鍵的函數。 – PredatorIWD

1

你應該擁有document.ready()函數中的所有代碼。

$(document).ready(function() { 
    var idleInterval = setInterval(timerIncrement, 10000); 
    var idleTime = 0; 

    $(document).on('keyup', function() { 
     console.log('Keyup Detected'); 
     idleTime = 0; 
    }); 

    function timerIncrement() { 
     idleTime++; 

     if (idleTime > 4) 
      window.location.replace('/timeout.aspx'); 
    } 
});