我找到了一个解决方案,可以在Detecting if the user is idle with JavaScript and YUI 3上的浏览器上检测用户的空闲状态。
它在FireFox上运行良好,但有时它并不适用于Chrome,Safari。用这些浏览器一直调用mousemove事件。
任何人都有其他解决方案吗?
答案 0 :(得分:0)
我现在找到了解决方案。在idle-timer.js中,我将其更新如下 1 /搜索以下代码
var idle = false, //indicates if the user is idle
tId = -1, //timeout ID
enabled = false, //indicates if the idle timer is enabled
timeout = 30000; //the amount of time (ms) before the user is considered idle
并在上面的下一行添加两行
prevMousePos = { x: -1, y: -1 };
currentMousePos = { x: -1, y: -1 };
如果您的代码不起作用,您可以尝试使用event.screenX,event.screenY。
2 /替换此行
clearTimeout(tId);
与
if(e.type == 'mousemove'){
currentMousePos.x = event.pageX;
currentMousePos.y = event.pageY;
if(currentMousePos == prevMousePos){
enabled = false;
}
else{
prevMousePos = currentMousePos;
clearTimeout(tId);
}
}
else if(e.type == 'mousemove'){
clearTimeout(tId);
}
else if(e.type == 'keydown'){
clearTimeout(tId);
}