2010-01-19 7 views
2

사용자가 페이지에서 활성화되어 있지 않은 경우 newalert() 함수를 호출하는 javascript 또는 jQuery 함수를 찾고 있습니다 (커서 위치 또는 이와 비슷한 것을 확인하는 이벤트가있을 수 있음)사용자가 페이지에서 활성화되지 않은 경우 자바 스크립트 기능을 실행 하시겠습니까?

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

나는 그것을 시도했으나 한 번만 작동했으며 경고를 실행할 때 페이지가 내용을로드하는 것처럼 보였다. 감사합니다. –

3

당신 사용자가 활성 및 활성에 있어야하는 것이 무엇을 의미하는지 파악하기 위해 먼저해야합니다. 활동의 명백한 징후 창 blur 이벤트를 포함,하지만 당신이 다른 사람을 볼 수도 있습니다

  • blur 이벤트
  • 없음 마우스 활동 : 없음 스크롤, 클릭, 또는 운동
  • 없음 키보드 활동

마우스 이벤트 및 해당 경고에 대한 좋은 목록은 Quirksmode에 있습니다.

비활성 상태라는 것을 결정하면 반대 이벤트 (마우스를 이동/클릭/스크롤, 창 포커스, 키보드 이벤트 수신 등)가 발생하면 타이머를 지울 수 있습니다.

관련 문제