2009-04-23 2 views

답변

13

창 닫기를 직접 알릴 수는 없지만 window.open()에 의해 반환 된 창 개체 참조의 closed 속성을 검사하여 자식 창이 닫힌 경우 해결할 수 있습니다. 여기

가 자식 창 5 초 이내에 경보 폴링하여 closed 속성을 폐쇄 표시 예입니다 :

var win = open('http://www.google.com'); 
var intervalId = setInterval(function() { 
     if (win.closed) { 
      clearInterval(intervalId); 
      alert('Window closed! Hoorah!'); 
     } 
    }, 5000); 
+0

직접 통지 질수 있도록 자식 창이 별도의 도메인에 있기 때문에 맞습니까? – Adam

+0

창이 닫힐 때 해결할 수있는 적합한 브라우저 이벤트가 없기 때문입니다. –

+0

Woow..great man .. 매력처럼 일 했어. 고마워요. – BKM

-1

팝업 코드 1/두 조각과 더 나은 솔루션 :

부모의
$(window).bind('unload', 
    function(){ 
    window.opener.PopupUnload(window) 
    }) 

2/(메인 윈도우)

function PopupUnload(wnd){ 
setTimeout(function(){ // setTimeout is for IE 
    if(wnd.closed) 
    alert('You just killed me...') 
    },10) 
} 
,174 이 코드 (setInterval을()와 함께) 영원히라는 기능 없음으로

당신은 닫고 새로 고침 팝업 (POST/GET)

(IE8과 FF3에서 테스트)의 차이가

+1

부모와 팝업 창을 다른 곳에서 불러 오면'window.opener.PopupUnload' 호출이 실패합니다 도메인 간 사이트 스크립팅 제한으로 인해 –

관련 문제