>  기사  >  웹 프론트엔드  >  window.open 함수는 모든 하위 windows_javascript 기술을 닫습니다.

window.open 함수는 모든 하위 windows_javascript 기술을 닫습니다.

WBOY
WBOY원래의
2016-05-16 15:47:331609검색

이 글에서는 window.open 메소드를 사용하여 하위 창을 여는 방법을 소개합니다. 메인 창을 닫으면 모든 하위 창도 닫힙니다. 다음은 여러분과 공유할 구현 아이디어와 코드입니다.

구현 아이디어:
1. 열린 하위 창 함수 window.open(url,winName)의 두 번째 매개변수 winName은 열린 창을 고유하게 식별할 수 있습니다. 따라서 자식 창을 닫으려면 winName.close() 함수만 사용하면 됩니다.
2. 페이지에는 여러 개의 하위 창이 있을 수 있습니다. 따라서 모든 자식 창 개체를 저장하려면 배열이 필요합니다. 닫혀 있으면 배열을 반복하면 됩니다.
3. 하위 창은 하위 창을 열 수도 있습니다. 루프는 무한정 계속됩니다. 그러므로 판단이 필요하다.
이 요구 사항은 두 가지 방법으로 달성할 수 있습니다.

자식 창 닫기 기능을 호출합니다.
이 방법은 이해하기 쉽지만 실제 구현 과정에서 브라우저의 종료 이벤트가 발생하지 않는 것으로 나타났습니다. 그리고 버튼을 누르거나 단축키를 이용해 닫아야 하는데, 하위 창을 재귀적으로 닫는 게 좀 더 번거롭습니다
이 방법은 구현이 간단합니다. 단점은 하위 창을 저장하는 모든 창 개체 배열이 동일한 이름을 가져야 한다는 것입니다

다음은 재귀를 이용하여 하위 창과 하위 창을 닫는 하위 창 방식입니다

function closeSonWindow(win){
  for(var index=0;index<win.length;index++){
    //如果窗口已关闭
    if(win[index].closed){
      continue;
    }
    //如果窗口没有可以打开的子窗口
    if(typeof(win[index].openedWindow)=="undefined"){
      win[index].close();
      continue;
    }
    if(win[index].openedWindow.length==0){
      win[index].close();
    }else{
      closeSonWindow(win[index].openedWindow);
      win[index].close();
    }
  }
}

위 내용은 이 글의 전체 설명입니다. 모든 분들께 도움이 되었으면 좋겠습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.