zoukankan      html  css  js  c++  java
  • window.open 打开子窗口,关闭所有的子窗口

    需求:通过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();
            }
        }
    }
  • 相关阅读:
    程序员之歌 littleflute原创
    生成网站缩略图的小工具,:)
    十个习惯
    用反编译工具透析.Net页面生成本质
    装箱拆箱陷阱揭秘
    图片上传——用一般处理程序实现
    Web.config文件中常用的配置节点
    初识三层,请多指教
    匪夷所思的题目,心理慢慢引导
    权重分配方法
  • 原文地址:https://www.cnblogs.com/stoneFang/p/6715308.html
Copyright © 2011-2022 走看看