欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

函數(shù)window.open實現(xiàn)關(guān)閉所有的子窗口

 更新時間:2015年08月03日 15:46:17   作者:FS1360472174  
這篇文章主要介紹了函數(shù)window.open實現(xiàn)關(guān)閉所有的子窗口的相關(guān)資料,需要的朋友可以參考下。

此文介紹了如何用window.open方法打開一個子窗口,當(dāng)我們要關(guān)閉主窗口時,這時候所有的子窗口也會跟著關(guān)閉。下面有我的實現(xiàn)思路和代碼,分享給大家。

實現(xiàn)思路:
1.打開子窗口函數(shù)window.open(url,winName)的第二個參數(shù)winName可以唯一標識打開的窗口。因此關(guān)閉子窗口只需要使用winName.close()函數(shù)即可。
2.一個頁面可能有多個子窗口。因此需要一個數(shù)組存儲所有子窗口對象。關(guān)閉時,遍歷數(shù)組即可。
3.子窗口還可以再打開子窗口。無限循環(huán)下去。因此需要判斷。
此需求可以通過兩個方法實現(xiàn)。

調(diào)用子窗口的關(guān)閉函數(shù)。
此方法易于理解,但是實際實現(xiàn)過程中發(fā)現(xiàn)瀏覽器的關(guān)閉事件并沒有。且需要是按鈕點擊關(guān)閉還是快捷鍵關(guān)閉,稍微麻煩一些、遞歸關(guān)閉子窗口
此方法實現(xiàn)簡單,缺點就是所有的窗口存儲子窗口的對象數(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();
    }
  }
}

以上就是本文的全部敘述,希望對大家有所幫助。

相關(guān)文章

最新評論