此文介紹了如何用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(); } } }
以上就是本文的全部敘述,希望對大家有所幫助。