이 글에서는 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(); } } }
위 내용은 이 글의 전체 설명입니다. 모든 분들께 도움이 되었으면 좋겠습니다.