函数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 相关文章推荐
javascript call方法使用说明
Jan 11 Javascript
JavaScript中也使用$美元符号来代替document.getElementById
Jun 19 Javascript
基于jQuery的动态增删改查表格信息,可左键/右键提示(原创自Zjmainstay)
Jul 31 Javascript
JavaScript极简入门教程(二):对象和函数
Oct 25 Javascript
Jquery中CSS选择器用法分析
Feb 10 Javascript
在Html中使用Requirejs进行模块化开发实例详解
Apr 15 Javascript
Node.js中路径处理模块path详解
Nov 14 Javascript
Map.vue基于百度地图组件重构笔记分享
Apr 17 Javascript
Vue.js常用指令的使用小结
Jun 23 Javascript
解决angular2 获取到的数据无法实时更新的问题
Aug 31 Javascript
jQuery操作attr、prop、val()/text()/html()、class属性
May 23 jQuery
小程序登录/注册页面设计的实现代码
May 24 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
php实现网站留言板功能
2015/11/04 PHP
PHP简单数据库操作类实例【支持增删改查及链式操作】
2016/10/10 PHP
利用PHP实现一个简单的用户登记表示例
2017/04/25 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
2017/08/30 PHP
PHP使用file_get_contents发送http请求功能简单示例
2018/04/29 PHP
js 实现无缝滚动 兼容IE和FF
2009/07/15 Javascript
jQuery学习笔记之jQuery的DOM操作
2010/12/22 Javascript
Jquery截取中文字符串的实现代码
2010/12/22 Javascript
jquery 查找select ,并触发事件的实现代码
2011/03/30 Javascript
js history对象简单实现返回和前进
2013/10/30 Javascript
jquery表单验证框架提供的身份证验证方法(示例代码)
2013/12/27 Javascript
jQuery中Ajax的load方法详解
2015/01/14 Javascript
JavaScript中用于四舍五入的Math.round()方法讲解
2015/06/15 Javascript
js实现input密码框提示信息的方法(附html5实现方法)
2016/01/14 Javascript
深入理解jQuery中的事件冒泡
2016/05/24 Javascript
vue2笔记 — vue-router路由懒加载的实现
2017/03/03 Javascript
JS简单获取当前日期时间的方法(如:2017-03-29 11:41:10 星期四)
2017/03/29 Javascript
vue-quill-editor实现图片上传功能
2017/08/08 Javascript
JavaScript中变量提升与函数提升经典实例分析
2018/07/26 Javascript
vue.js仿hover效果的实现方法示例
2019/01/28 Javascript
layui中select,radio设置不生效的解决方法
2019/09/05 Javascript
JavaScript和TypeScript中的void的具体使用
2019/09/12 Javascript
js实现时钟定时器
2020/03/26 Javascript
Python使用urllib2模块实现断点续传下载的方法
2015/06/17 Python
python3 pillow生成简单验证码图片的示例
2017/09/19 Python
python生成excel的实例代码
2017/11/08 Python
Python3获取拉勾网招聘信息的方法实例
2019/04/03 Python
python实现美团订单推送到测试环境,提供便利操作示例
2019/08/09 Python
python 实现从高分辨图像上抠取图像块
2020/01/02 Python
Python sql注入 过滤字符串的非法字符实例
2020/04/03 Python
Pytorch使用PIL和Numpy将单张图片转为Pytorch张量方式
2020/05/25 Python
入党自我鉴定范文
2013/10/04 职场文书
大学生创业事迹材料
2014/12/30 职场文书
综合测评自我评价
2015/03/06 职场文书
承诺书的签字人,需不需要承担相应的责任?
2019/07/09 职场文书
2019公司借款合同范本2篇!
2019/07/24 职场文书