2010-01-19 169 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提供

鼠標事件及其注意事項的好名單。

一旦你確定這是什麼意思是不活動的,當對立事件發生時,你可以清除定時器(鼠標移動/點擊/滾動,窗口獲得焦點,鍵盤事件是接收等)。