2010-01-19 119 views
2

我正在寻找一个JavaScript或jQuery的函数来执行我的功能newalert(),如果用户没有激活页面上,(也许与一些事件来检查光标位置,或者是这样的)执行javascript函数?

我会让使用它的setTimeout自动检查,我只是希望函数检查用户的可用性像Gmail聊天,接收到新的IM和你不看Gmail页面时,它起着哔哔声。

感谢

回答

5

尝试使用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; 
+0

我尝试过,但它的作品只有一次,并执行警戒当页面好像加载内容。 感谢 – 2010-01-19 22:44:01

3

你首先需要确定它意味着用户要主动活跃。活动的明显迹象包括窗口blur事件,但你可能想看看这些人

  • 窗口blur事件
  • 没有鼠标活动:没有滚动,点击或移动
  • 没有键盘活动
  • Quirksmode提供

鼠标事件及其注意事项的好名单。

一旦你确定这是什么意思是不活动的,当对立事件发生时,你可以清除定时器(鼠标移动/点击/滚动,窗口获得焦点,键盘事件是接收等)。