函数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统计子菜单的条数示例代码
Oct 18 Javascript
js中typeof的用法汇总
Dec 12 Javascript
JavaScript调试工具汇总
Dec 23 Javascript
如何减少浏览器的reflow和repaint
Feb 26 Javascript
详解AngularJS中的作用域
Jun 17 Javascript
深入学习js瀑布流布局
Oct 14 Javascript
js select下拉联动 更具级联性!
Apr 17 Javascript
jQuery插件FusionCharts绘制的3D双柱状图效果示例【附demo源码】
Apr 20 jQuery
原生JavaScript实现精美的淘宝轮播图效果示例【附demo源码下载】
May 27 Javascript
简单谈谈CommonsChunkPlugin抽取公共模块
Dec 31 Javascript
Vue实现根据hash高亮选项卡
May 27 Javascript
深入浅出vue图片路径的实现
Sep 04 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数组中的重复值的实现代码
2011/07/17 PHP
PHP生成不重复标识符的方法
2014/11/21 PHP
PHP数据库表操作的封装类及用法实例详解
2016/07/12 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
jQuery 中使用JSON的实现代码
2011/12/01 Javascript
完美解决IE低版本不支持call与apply的问题
2013/12/05 Javascript
通过location.replace禁止浏览器后退防止重复提交
2014/09/04 Javascript
兼容Firefox的Javascript XSLT 处理XML文件
2014/12/31 Javascript
javascript获取元素离文档各边距离的方法
2015/02/13 Javascript
angular.bind使用心得
2015/10/26 Javascript
适用于javascript开发者的Processing.js入门教程
2016/02/24 Javascript
AngularJS 让人爱不释手的八种功能
2016/03/23 Javascript
Vue中的无限加载vue-infinite-loading的方法
2018/04/08 Javascript
使用taro开发微信小程序遇到的坑总结
2019/04/08 Javascript
vue之封装多个组件调用同一接口的案例
2020/08/11 Javascript
[43:43]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第三场 11.29
2020/12/02 DOTA
python实现异步回调机制代码分享
2014/01/10 Python
python计算对角线有理函数插值的方法
2015/05/07 Python
自己编程中遇到的Python错误和解决方法汇总整理
2015/06/03 Python
Python压缩解压缩zip文件及破解zip文件密码的方法
2015/11/04 Python
python字符串切割:str.split()与re.split()的对比分析
2019/07/16 Python
python3使用print打印带颜色的字符串代码实例
2019/08/22 Python
python用类实现文章敏感词的过滤方法示例
2019/10/27 Python
Ubuntu18.04安装 PyCharm并使用 Anaconda 管理的Python环境
2020/04/08 Python
浅谈python多线程和多线程变量共享问题介绍
2020/04/17 Python
使用Python将语音转换为文本的方法
2020/08/10 Python
手把手教你用Django执行原生SQL的方法
2021/02/18 Python
CSS3区域模块region相关编写示例
2015/08/28 HTML / CSS
CSS3 3D旋转rotate效果实例介绍
2016/05/03 HTML / CSS
SK-II神仙水美国官网:SK-II美国
2020/02/25 全球购物
大学生职业规划书的范本
2014/02/18 职场文书
企业趣味活动方案
2014/08/21 职场文书
党的群众路线教育实践活动整改落实情况自查报告
2014/10/28 职场文书
扩展多台相同的Web服务器
2021/04/01 Servers
Python基础之教你怎么在M1系统上使用pandas
2021/05/08 Python
拙作再改《我的收音机情缘》
2022/04/05 无线电