我发现一个解决方案可以在Detecting if the user is idle with JavaScript and YUI 3上检测浏览器上用户的空闲状态。
它在 FireFox 上运行良好,但有时在 Chrome、Safari 上却不行。那些浏览器一直调用 mousemove 事件。
任何人都有其他解决方案吗?
我发现一个解决方案可以在Detecting if the user is idle with JavaScript and YUI 3上检测浏览器上用户的空闲状态。
它在 FireFox 上运行良好,但有时在 Chrome、Safari 上却不行。那些浏览器一直调用 mousemove 事件。
任何人都有其他解决方案吗?
我现在找到了解决方案。在 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);
}