函数window.open实现关闭所有的子窗口


Posted in Javascript onAugust 03, 2015

此文介绍了如何用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();
    }
  }
}

以上就是本文的全部叙述,希望对大家有所帮助。

Javascript 相关文章推荐
基于jquery的合并table相同单元格的插件(精简版)
Apr 05 Javascript
JS判断对象是否存在的10种方法总结
Dec 23 Javascript
Javascript验证上传图片大小[前台处理]
Jul 18 Javascript
javascript遇到html5的一些表单属性
Jul 05 Javascript
javascript实现鼠标放上后下边对应内容变换的效果
Aug 06 Javascript
jQuery验证插件validate使用方法详解
Sep 13 Javascript
第一次接触神奇的Bootstrap网格系统
Jul 27 Javascript
在Vue.js中使用Mixins的方法
Sep 12 Javascript
基于angular-utils-ui-breadcrumbs使用心得(分享)
Nov 03 Javascript
如何去除vue项目中的#及其ie9兼容性
Jan 11 Javascript
JavaScript使用小插件实现倒计时的方法讲解
Mar 11 Javascript
layui自定义工具栏的方法
Sep 19 Javascript
百度地图api如何使用
Aug 03 #Javascript
javascript实现输出指定行数正方形图案的方法
Aug 03 #Javascript
如何用js 实现依赖注入的思想,后端框架思想搬到前端来
Aug 03 #Javascript
javascript常见数据验证插件大全
Aug 03 #Javascript
javascript自定义in_array()函数实现方法
Aug 03 #Javascript
JavaScript简单修改窗口大小的方法
Aug 03 #Javascript
javascript实现随机读取数组的方法
Aug 03 #Javascript
You might like
超级简单的发送邮件程序
2006/10/09 PHP
smarty的保留变量问题
2008/10/23 PHP
用Json实现PHP与JavaScript间数据交换的方法详解
2013/06/20 PHP
PHP获取用户访问IP地址的5种方法
2016/05/16 PHP
PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析
2017/07/03 PHP
PHP的介绍以及优势详细分析
2019/09/05 PHP
CSS心形加载的动画源码的实现
2021/03/09 HTML / CSS
动态改变textbox的宽高的js
2006/10/26 Javascript
[原创]js与自动伸缩图片 自动缩小图片的多浏览器兼容的方法总结
2007/03/12 Javascript
jquery 图片截取工具jquery.imagecropper.js
2010/04/09 Javascript
Jquery实现页面加载时弹出对话框代码
2013/04/19 Javascript
javaScript arguments 对象使用介绍
2013/10/18 Javascript
javascript数字时钟示例分享
2014/04/23 Javascript
js使用onmousemove和onmouseout获取鼠标坐标的方法
2015/03/31 Javascript
jQuery事件绑定用法详解(附bind和live的区别)
2016/01/19 Javascript
Eclipse编辑jsp、js文件时卡死现象的解决办法汇总
2016/02/02 Javascript
jquery无法为动态生成的元素添加点击事件的解决方法(推荐)
2016/12/26 Javascript
浅谈js中function的参数默认值
2017/02/20 Javascript
OpenLayers实现图层切换控件
2020/09/25 Javascript
Python基于最小二乘法实现曲线拟合示例
2018/06/14 Python
pyqt5 tablewidget 利用线程动态刷新数据的方法
2019/06/17 Python
python和C++共享内存传输图像的示例
2020/10/27 Python
python操作ini类型配置文件的实例教程
2020/10/30 Python
打造经典复古风格的品牌:Alice + Olivia(爱丽丝+奥利维亚)
2016/09/07 全球购物
伊莱克斯(Electrolux)俄罗斯网上商店:瑞典家用电器品牌
2021/01/23 全球购物
文秘自荐信
2013/10/20 职场文书
企业精细化管理实施方案
2014/03/23 职场文书
我的理想演讲稿
2014/04/30 职场文书
英文求职信范文
2014/05/23 职场文书
安全施工标语
2014/06/07 职场文书
2014年学习厉行节约反对浪费思想汇报
2014/09/10 职场文书
安全生产工作汇报
2014/10/28 职场文书
如何写好闭幕词
2019/04/02 职场文书
高一作文之乐趣
2019/11/21 职场文书
Python 用户输入和while循环的操作
2021/05/23 Python
Appium中scroll和drag_and_drop根据元素位置滑动
2022/02/15 Python