0

我发现一个解决方案可以在Detecting if the user is idle with JavaScript and YUI 3上检测浏览器上用户的空闲状态。

它在 FireFox 上运行良好,但有时在 Chrome、Safari 上却不行。那些浏览器一直调用 mousemove 事件。

任何人都有其他解决方案吗?

4

1 回答 1

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);
    }
于 2013-03-07T03:32:34.580 回答