2012-09-17 6 views
4

사용자가 페이지에서 다른 사이트로 이동하거나 동일한 사이트가 아닌 다른 사이트로 이동하거나 창/탭을 닫을 때를 모니터링해야합니다. 나는 $(window).bind('unload', function() {});으로 그것을 달성 할 수 있지만 onload은 캐치 올 이벤트입니다. 또한 페이지 새로 고침과 동일한 웹 사이트의 다른 페이지로 이동합니다. javascript/jQuery를 사용하여 두 가지 이벤트 (페이지 새로 고침 및 동일한 웹 사이트의 다른 페이지 탐색)를 어떻게 찾을 수 있습니까?javascript의 언로드 및 사전로드 대체

답변

2

,

var leaving = true; 

$(function() { 
    $('a[rel!=ext]').click(function() { leaving = false; }); 
    $('form').submit(function() { leaving = false; }); 
}); 

$(function() { window.onbeforeunload = unloadPage; }); 

function unloadPage() { 
    if(leaving) { 
     // Put your logic here 
    } 
} 

다음 외부 사이트에 대한 모든 링크에 rel="ext" 속성이 있는지 확인하십시오.

+0

사용자가 탐색 막대 (아마도 동일한 도메인 또는 아마도 그렇지 않은 URL)에 새 URL을 입력하면이 기능이 작동하지 않습니다. 사용자가 페이지의 링크를 클릭하면 작동합니다. 또한 양식을 다른 도메인에 게시 할 수 있습니다. –

+0

사용자가 새 URL을 입력하면 unloadPage() 핸들러가 실행됩니다 (Opera에서는 아닐까요?). 그러나 새 URL이 현재 사이트에있는 경우 예, 거짓 긍정을 얻을 수 있습니다. – mikeagg

+0

현재 사이트 외부의 URL에 대한 양식 게시는 단순히 leave = false로 설정하는 대신 지능적인 로직을 코딩하여 처리 할 수 ​​있습니다. – mikeagg