空闲时间是用户没有与网页交互的时间。
它可以是鼠标移动、页面点击或者用户使用键盘时。
可以使用 vanilla JavaScript 或者 jQuery 代码检测空闲时间。
原生 JavaScript
我们可以使用 vanilla JavaScript 来检测空闲时间:
let inactivityTime = function () {
let time;
window.onload = resetTimer;
document.onmousemove = resetTimer;
document.onkeypress = resetTimer;
function logout() {
console.log("您现在已注销。")
}
function resetTimer() {
clearTimeout(time);
time = setTimeout(logout, 2000)
}
};
inactivityTime();
console.log('请等待');
并在需要的地方初始化函数:
<!DOCTYPE html>
<html>
<head>
<title>文档的标题</title>
</head>
<body>
<script>
let inactivityTime = function() {
let time;
window.onload = resetTimer;
document.onmousemove = resetTimer;
document.onkeypress = resetTimer;
function logout() {
alert("您现在已注销。")
}
function resetTimer() {
clearTimeout(time);
time = setTimeout(logout, 2000)
}
};
window.onload = function() {
inactivityTime();
}
</script>
</body>
</html>
如果需要,我们还可以添加更多 DOM 事件。
最常用的有以下几种:
let inactivityTime = function () {
let time;
window.onload = resetTimer;
document.onload = resetTimer;
document.onmousemove = resetTimer;
document.onmousedown = resetTimer; //touchscreen presses
document.ontouchstart = resetTimer;
document.onclick = resetTimer; //touchpad clicks
document.onkeypress = resetTimer;
document.addEventListener('scroll', resetTimer, true);
function logout() {
console.log("您现在已注销。")
}
function resetTimer() {
clearTimeout(time);
time = setTimeout(logout, 2000)
}
};
inactivityTime();
console.log('请等待');
要注册所需的事件,请使用数组:
window.addEventListener('load', resetTimer, true);
let events = ['mousedown', 'mousemove', 'keypress', 'scroll', 'touchstart'];
events.forEach(function (name) {
document.addEventListener(name, resetTimer, true);
});
DOM 事件
HTML DOM 事件允许 JavaScript 在 HTML 文档中的元素上注册不同的事件处理程序。
事件与功能协作。
在事件发生之前(例如当用户单击任何按钮时)不会调用该函数。
日期:2020-06-02 22:16:16 来源:oir作者:oir
