ProgramingTip

JavaScript에서 팝업 창의 이벤트 닫기

bestdevel 2021. 1. 5. 21:15
반응형

JavaScript에서 팝업 창의 이벤트 닫기


팝업 창이 window.open닫히기 전에 가지 작업을 수행해야합니다 (사용 ).

다음과 같은 것이 좋습니다.

var new_window = window.open('some url')
new_window.onBeforeUnload = function(){ my code}

어떻게 할 수 있습니까?


팝업 창 URL 상위이 페이지 와 동일한 도메인에 있고 이벤트를 모두 소문자로 변경하면 예제가 작동 합니다 .

var new_window = window.open('some url')
new_window.onbeforeunload = function(){ /* my code */ }

수락되어있는 것과 동일한 출처에 대해 서로 만나는 것이 있습니다.

var win = window.open('http://www.google.com'); 
var timer = setInterval(function() { 
    if(win.closed) {
        clearInterval(timer);
        alert('closed');
    }
}, 1000);

출처 : atashbahar.com

사용을 고려중인 분들을 위해.

심지어 페이스 북도 자바 펼쳐 SDK 에서이 "핵"을 사용하고 있습니다 .

코드를 살펴보면이를 확인할 수 있습니다. https://connect.facebook.net/en_US/sdk.js.closed 에서 검색 하십시오 .


이벤트 이름은 onbeforeunload하지 onBeforeUnload. JS는 대소 문자를 구분합니다.


onbeforeunload이벤트가 열린 후 창에 이벤트 를 바인딩해야합니다 .

이를 수행하는 가장 간단한 방법은 윈도우 소스 코드 복제를 수행하는 코드를 포함하는 것입니다.

자세한 설명은 여기여기 Stackoverflow 에서 매우 많은 가지 질문을 참조하십시오 .


onbeforeunload 이벤트 가 열린 창에 바인딩해야한다고 언급 했었습니다 .

다른 예를 참조하십시오 : https://stackoverflow.com/a/25989253/578275 .


var new_window = window.open('some_url')

경우에도 확인할 수 new_window.window있습니다 null. 그러나 setTimeout또는 setInterval기능 현관 을 사용하여 수동으로 확인해야 우리 합니다.

이것은 동일한 도메인에 있지 않을 때 확인하는 유일한 방법입니다.

참조 URL : https://stackoverflow.com/questions/9388380/capture-the-close-event-of-popup-window-in-javascript

반응형