函數(shù)window.open實(shí)現(xiàn)關(guān)閉所有的子窗口
此文介紹了如何用window.open方法打開一個(gè)子窗口,當(dāng)我們要關(guān)閉主窗口時(shí),這時(shí)候所有的子窗口也會(huì)跟著關(guān)閉。下面有我的實(shí)現(xiàn)思路和代碼,分享給大家。
實(shí)現(xiàn)思路:
1.打開子窗口函數(shù)window.open(url,winName)的第二個(gè)參數(shù)winName可以唯一標(biāo)識(shí)打開的窗口。因此關(guān)閉子窗口只需要使用winName.close()函數(shù)即可。
2.一個(gè)頁面可能有多個(gè)子窗口。因此需要一個(gè)數(shù)組存儲(chǔ)所有子窗口對(duì)象。關(guān)閉時(shí),遍歷數(shù)組即可。
3.子窗口還可以再打開子窗口。無限循環(huán)下去。因此需要判斷。
此需求可以通過兩個(gè)方法實(shí)現(xiàn)。
調(diào)用子窗口的關(guān)閉函數(shù)。
此方法易于理解,但是實(shí)際實(shí)現(xiàn)過程中發(fā)現(xiàn)瀏覽器的關(guān)閉事件并沒有。且需要是按鈕點(diǎn)擊關(guān)閉還是快捷鍵關(guān)閉,稍微麻煩一些、遞歸關(guān)閉子窗口
此方法實(shí)現(xiàn)簡單,缺點(diǎn)就是所有的窗口存儲(chǔ)子窗口的對(duì)象數(shù)組需同名
下面是使用遞歸關(guān)閉子窗口及子窗口的子窗口方法
function closeSonWindow(win){ for(var index=0;index<win.length;index++){ //如果窗口已關(guān)閉 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(); } } }
以上就是本文的全部敘述,希望對(duì)大家有所幫助。
相關(guān)文章
深入學(xué)習(xí) JavaScript中的函數(shù)調(diào)用
可能很多人在學(xué)習(xí) JavaScript 過程中碰到過函數(shù)參數(shù)傳遞方式的迷惑,本著深入的精神,我給大家分享了一篇教程關(guān)于javascript中的函數(shù)調(diào)用知識(shí),感興趣的朋友一起學(xué)習(xí)吧2017-03-03uniapp組件傳值的方法(父?jìng)髯?子傳父,對(duì)象傳值)實(shí)戰(zhàn)案例
現(xiàn)在的前端開發(fā)中基本上都是組件化開發(fā)的,下面這篇文章主要給大家介紹了關(guān)于uniapp組件傳值(父?jìng)髯?子傳父,對(duì)象傳值)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03javascript讀取xml實(shí)現(xiàn)javascript分頁
這篇文章主要介紹了javascript讀取xml數(shù)據(jù)對(duì)其實(shí)現(xiàn)javascript分頁效果,大家參考使用吧2013-12-12JS對(duì)象序列化成json數(shù)據(jù)和json數(shù)據(jù)轉(zhuǎn)化為JS對(duì)象的代碼
這篇文章主要介紹了JS對(duì)象序列化成json數(shù)據(jù)和json數(shù)據(jù)轉(zhuǎn)化為JS對(duì)象的代碼,需要的朋友可以參考下2017-08-08JavaScript中三個(gè)等號(hào)和兩個(gè)等號(hào)你了解多少
本篇文章主要介紹了js里面的==和===,== 判斷如果兩邊變量的類型不同,而 === 則不做類型轉(zhuǎn)換,有興趣的可以了解一下2017-07-07JS中setInterval、setTimeout不能傳遞帶參數(shù)的函數(shù)的解決方案
在JS中無論是setTimeout還是setInterval,在使用函數(shù)名作為調(diào)用句柄時(shí)都不能帶參數(shù),而在許多場(chǎng)合必須要帶參數(shù),接下來為大家介紹具體的解決方法2013-04-04JS highcharts實(shí)現(xiàn)動(dòng)態(tài)曲線代碼示例
這篇文章主要介紹了JS highcharts實(shí)現(xiàn)動(dòng)態(tài)曲線代碼示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10echarts圖表無數(shù)據(jù)/空數(shù)據(jù)如何展示"暫無數(shù)據(jù)"
在開發(fā)echarts的時(shí)候我們不得不考慮數(shù)據(jù)為空的情況,其實(shí)有很多種解決辦法,下面這篇文章主要給大家介紹了關(guān)于echarts圖表無數(shù)據(jù)/空數(shù)據(jù)如何展示“暫無數(shù)據(jù)”的相關(guān)資料,需要的朋友可以參考下2022-10-10