ユーザーがJavaScriptとYUI3でアイドル状態であるかどうかを検出するで、ブラウザーでユーザーのアイドル状態を検出することで回避できる解決策を見つけました。
FireFoxでは正常に機能しましたが、Chrome、Safariでは機能しない場合がありました。mousemoveイベントは、これらのブラウザーで常に呼び出されていました。
代わりに他の解決策がある人はいますか?
ユーザーがJavaScriptとYUI3でアイドル状態であるかどうかを検出するで、ブラウザーでユーザーのアイドル状態を検出することで回避できる解決策を見つけました。
FireFoxでは正常に機能しましたが、Chrome、Safariでは機能しない場合がありました。mousemoveイベントは、これらのブラウザーで常に呼び出されていました。
代わりに他の解決策がある人はいますか?
私は今それの解決策を見つけました。idle-timer.jsで、follow1/フォローコードを検索して更新しました
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
上記の次の行に2つの下の行を追加します
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);
}