【发布时间】:2010-01-19 22:20:16
【问题描述】:
如果用户在页面上不活动,我正在寻找一个 javascript 或 jQuery 函数来执行我的函数 newalert(),(可能有一些事件来检查光标位置或类似的东西)
我将使用 settimeout 使其自动检查,我只希望该功能可以检查用户的可用性,例如在 gmail 聊天中,当收到新的 IM 并且您没有观看 gmail 页面时,它会播放哔哔声。
谢谢
【问题讨论】:
标签: javascript jquery
如果用户在页面上不活动,我正在寻找一个 javascript 或 jQuery 函数来执行我的函数 newalert(),(可能有一些事件来检查光标位置或类似的东西)
我将使用 settimeout 使其自动检查,我只希望该功能可以检查用户的可用性,例如在 gmail 聊天中,当收到新的 IM 并且您没有观看 gmail 页面时,它会播放哔哔声。
谢谢
【问题讨论】:
标签: javascript jquery
尝试使用window.onblur事件,或者你可以有一个连续运行的计时器,当鼠标位置相同x毫秒时,执行函数。
例子:
var lastX, lastY = 0;
var act_timeout = null;
function doAction() {
alert( 'not active' );
return false;
}
function move( e ) {
if( e.clientY == lastY && e.clientX == lastX ) {
act_timeout = setTimeout( doAction, 5000 );
return;
}
lastX = e.clientX;
lastY = e.clientY;
act_timeout = clearTimeout( act_timeout );
}
window.onmousemove = move;
window.onblur = doAction;
【讨论】:
您首先需要确定用户活跃和活跃意味着什么。不活动的明显迹象包括窗口 blur 事件,但您可能想查看其他这些
blur事件Quirksmode 提供了一份很好的鼠标事件列表及其注意事项。
一旦您确定不活动意味着什么,您就可以在发生相反事件(鼠标移动/单击/滚动、窗口聚焦、键盘事件接收等)时清除计时器。
【讨论】: