2009-10-06 3 views
1

다음 코드를 통해 창 닫기/탐색 이벤트를 추적 중입니다.onbeforeunload 이벤트 후

window.onbeforeunload = winClose; 
    function winClose() { 
     if (isDataChanged) {  
      return "Are you sure you want to close?"; 
     } 
    } 

분명히 확인/취소와 함께 확인 팝업이 표시됩니다. 브라우저가 닫힐 때.

여기에서 확인/취소를 누르면 이벤트를 호출하려고합니다. 그렇게하는 방법?

답변

2

시도해보십시오에서는 setTimeout을 사용

window.onbeforeunload = winClose; 
    function winClose() { 
     if (isDataChanged) { 
      setTimeout(function() { do_canceled_event(); }, 500); 
      return "Are you sure you want to close?"; 
     } 
    } 

, 당신은 대화 상자가 열려있는 동안 정지 페이지의 정상 흐름과 JS에서 가져 가라. 처리가 계속되면 do_canceled_event()이 실행되어야합니다. 희망이 도움이됩니다.

(참고 : 테스트하지 않음)

+0

내가 OK 버튼을 누르면 어떻게 될까요? – Madhu

+0

그러면 페이지를 얼마나 빨리 빠져 나갈지에 따라 다릅니다. 이것이 비판적이거나 눈에 거슬리는 것이면 onbeforeunload는 아마도 가장 좋은 곳은 아니지만 단순히 "저장하는 것을 잊지 마라!"라고 말하면 div를 표시하는 것이므로별로 중요하지 않습니다. –

+0

또한 지연이 허용되면 타이머의 지속 시간을 늘리십시오. 사용자가 확인 또는 취소를 눌렀는지 여부를 알 수있는 방법은 없습니다 ... 스크립트가 나중에 실행되는지 여부 –

관련 문제