码迷,mamicode.com
首页 > Windows程序 > 详细

window.open 打开子窗口,关闭所有的子窗口

时间:2015-08-02 16:52:34      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:js   openwindow   关闭子窗口   

需求:通过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();
        }
    }
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

window.open 打开子窗口,关闭所有的子窗口

标签:js   openwindow   关闭子窗口   

原文地址:http://blog.csdn.net/fs1360472174/article/details/47207675

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!