JavaScript로 브라우저 창이 열려 있는지 확인하려면 어떻게합니까?

StackOverflow https://stackoverflow.com/questions/221432

  •  03-07-2019
  •  | 
  •  

문제

일부 회원을 위해 내 사이트에서 새 브라우저 창을 열고 있습니다. 그러나 일부는 나중에 닫을 수도 있고 처음에는 열리지 않았을 수도 있습니다.

다른 브라우저 창이 열린 지 확인하기 위해 각 페이지에서 실행할 수있는 상당히 평범한 JavaScript 스 니펫이 있습니까?

설명: 확인 할 코드는 창이 열린 상태에서 다른 페이지에서 실행됩니다. 같은 창과 열린 URL뿐만 아니라 다른 페이지에서 실행됩니다. 사용자 로그인, 창이 열리면서 열린 다음 두 번째 창을 닫기 전에 같은 탭/창 (또는 기타)에서 서핑을한다고 상상해보십시오. 창을 닫은 후/닫힌 후 창문이 닫히는 것을 확인하려면 Window.open ()에서 JavaScript의 반품을 확인하는 것이 쉽게 사용되거나 실제로 사용될 수 있는지 확실하지 않습니다. .

도움이 되었습니까?

해결책

이것 훌륭하고 포괄적 인 기사 ( "팝업 윈도우의 거의 완전한 제어") JavaScript 팝업 창에 대한 모든 질문에 답해야합니다.

"JavaScript 1.1도 창을 소개했습니다 닫은 재산. 이 속성을 사용하면 창이 열리고 이후에 닫힌 경우를 감지 할 수 있습니다. JavaScript 1.1 활성화 된 브라우저 용으로 여전히 열려있는 경우 페이지를 오프너 창에 직접로드하는 데이를 사용할 수 있습니다. "

<script language="JavaScript"><!--
function open_main(page) {
    window_handle = window.open(page,'main');
    return false;
}
//--></script>

<script language="JavaScript1.1"><!--
function open_main(page) {
    if (opener && !opener.closed) {
        opener.location.href = page;
    }
    else {
        window_handle = window.open(page,'main');
    }
    return false;
}
//--></script>

<a href="example.htm" onClick="return open_main('example.htm')">example.htm</a>

덧셈:팝업의 이름을이 방법을 참조하여 다른 페이지에서 창 핸들을 다시 가져올 수 있습니다.

window_handle = window.open(page,'myPopupName');

귀하의 경우 전체 응용 프로그램에서 팝업 창의 모든 이름을 만들 수있는 일관된 방법에 대해 생각해야한다고 생각합니다.

다른 팁

var myWin = window.open(...);

if (myWin.closed)
{
    myWin = window.open(...);
}

각 팝업 차단기가 다른 동작을 가지므로 확인하는 보편적 인 방법은 없습니다. 예를 들어, Opera는 팝업을 표시하지 않지만 Widow.closed는 장면 뒤에서 Opera가 차단 된 창의 그림자 사본을 유지하면서 False를 반환합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top