2010-01-19 3 views
2

Я ищу для яваскрипта или JQuery функции для выполнения моей функции newalert(), если пользователь не активен на странице, (возможно, с каким-то событием, чтобы проверить положение курсора или что-то вроде этого)выполнить функцию javascript, если пользователь не активен на странице?

БУДУ сделайте автоматическую проверку с помощью setimeout, я просто хочу, чтобы функция проверяла доступность пользователя, как в чате gmail, при получении нового чата, и вы не смотрите страницу gmail, он воспроизводит звуковой сигнал.

Благодаря

ответ

5

Попробуйте использовать window.onblur события, или вы можете иметь таймер, который постоянно работает и когда положение мыши одинаково для й количества миллисекунд, выполнить функцию.

Пример:

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

Я попробовал, но он работает только один раз, и страница, похоже, загружает контент при выполнении предупреждения. спасибо –

3

Сначала необходимо определить, что это означает для пользователя, чтобы быть активным и активным. Очевидные признаки бездействия включает событие окна blur, но вы можете посмотреть на этих другие

  • Окно blur событие
  • Нет активность мыши: нет прокрутки, щелчков или движения
  • Нет клавиатуру активности

Хороший список событий мыши и их оговорки предоставлены по адресу Quirksmode.

Как только вы определяете, что значит быть неактивным, вы можете очистить свой таймер, когда происходят противоположные события (мышь перемещена/нажата/прокручена, окно сфокусировано, событие клавиатуры получено и т. Д.).

Смежные вопросы