2009-05-06 5 views
3

여기 몇 개의 스레드를 보았는데 주로 다음을 사용했습니다 : window.onbeforeunload = function (e) { var e = e || window.event;자바 스크립트로 닫는 페이지를 감지하는 방법이 있습니까?

// IE & 파이어 폭스 경우 (예) { e.returnValue = '당신이 확실합니까?'; }

// Safari의 경우 반환 'Are you sure?'; };

그러나 이것은 상쾌한 페이지와 닫는 페이지의 상황을 혼합하는 것 같습니다. 이 두 가지 상황을 구별 할 가능성이 있습니까?

답변

2

Javascript의 두 가지 다른 이벤트를 구분하는 방법이 없습니다. 당신은 GMail 접근법을 취할 수 있고 모든 것을 위해 AJAX를 사용할 수 있습니다. 따라서 페이지를 다시로드하지 않게하십시오. 즉, "OnBeforeUnload"라는 것은 실제로 사용이 페이지를 떠날 때뿐입니다. 다른 방법은 링크를 클릭 할 때 OnBeforeUnload 스크립트를 사용하지 않도록 JS를 모든 링크에 넣는 것입니다. 그러나 브라우저가 실제로 닫힐 때만 짝수를 실행하는 것이 좋습니다.

브라우저와 관련하여 사용자가 링크를 클릭하여 페이지에서 다른 곳으로 이동하고 브라우저 닫기 버튼을 클릭해도 아무런 차이가 없습니다.

3
function OnUnLoad() 
{ 
    if (window.event.clientY < 0 && window.event.clientX < 0) 
    { 
     //cleanup code goes here... 
    }  
} 

이것은 모든 브라우저에서 저에게 적합합니다. 그러나 닫는 탭은 문제를 일으키는 것 같습니다. 사실, "문서화 된"방법이 없습니다.

관련 문제