js父窗口关闭时子窗口随之关闭完美解决方案


Posted in Javascript onApril 29, 2014

最近,遇到一个权限管理的系统。由于权限管理的系统和本来的系统风格不一致,所有新打开一个窗口。问题就来了,admin注销之后,权限管理的窗口没有关闭。其他普通用户登录以后,仍然可以操作权限管理的窗口。

问题简化:admin注销的时候,或者main.html关闭的时候,打开的所有新窗口一起关闭。问题就解决了

直接看代码吧:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>Insert title here</title> 
</head> 
<body onUnload="closeNews();"> <a href="#" onclick="openNew('http://www.baidu.com','nihao')">打开新窗口</a> 
<a href="#" onclick="logOut();">退出登录</a> 
</body> 
</html> 
<script> 
//用户记录所有打开的子窗口 
var win_Array = new Array(); 
var win_num = -1; 
//每次打开一个新窗口都记录下来 
function openNew(uri,param){ 
win_num = win_num+1; 
win_Array[win_num] = window.open(uri); 
} 
//用户注销的时候,执行关闭方法。body添加onUnload = "closeNews();" 当main窗口关闭时候,所有的子窗口关闭 
function closeNews(){ 
//关闭权限管理 
if(win_Array.length > 0){ 
for(var i = 0;i <= win_Array.length;i++){ 
var win_one = win_Array[i]; 
if(win_one != undefined){ 
win_one.close(); 
} 
} 
} 
} 
function logOut(){ 
//关闭子窗口 
closeNews(); 
//退出登录 
} 
</script>

说明一下:

<body onUnload="closeNews();">在body上添加onUnload事件很重要。即:当窗口关闭以后,执行关闭所有子窗口的方法。

测试:在web项目中,ie8,ie10,火狐,chrome,opera都没有问题。

一旦不放倒wen容器中,只是静态的 main.html页面的时候,ie有问题,因为静态的时候,ie的window.open()居然是打开新页面,不是打开新标签。所有关闭窗口的方法不再有效。

时间有限,还没有花精力去细究,还望知道为什么的js技术大神 可以指导一下。再次致谢。

Javascript 相关文章推荐
js获取对象为null的解决方法
Nov 21 Javascript
JS图像无缝滚动脚本非常好用
Feb 10 Javascript
使用node.js 制作网站前台后台
Nov 13 Javascript
jQuery中unbind()方法用法实例
Jan 19 Javascript
js绘制圆形和矩形的方法
Aug 05 Javascript
js实现ctrl+v粘贴上传图片(兼容chrome、firefox、ie11)
Mar 09 Javascript
canvas绘制的直线动画
Jan 23 Javascript
ECMAScript6--解构
Mar 30 Javascript
JavaScript适配器模式详解
Oct 19 Javascript
JS添加或删除HTML dom元素的方法实例分析
Mar 05 Javascript
vue-mugen-scroll组件实现pc端滚动刷新
Aug 16 Javascript
JS事件循环机制event loop宏任务微任务原理解析
Aug 04 Javascript
JS截取url中问号后面参数的值信息
Apr 29 #Javascript
javascript类型转换示例
Apr 29 #Javascript
常见浏览器多长时间会提示“脚本运行时间过长”总结
Apr 29 #Javascript
javascript中使用正则计算中文长度的例子
Apr 29 #Javascript
一个简单的Node.js异步操作管理器分享
Apr 29 #Javascript
IE浏览器中图片onload事件无效的解决方法
Apr 29 #Javascript
javascript的创建多行字符串的7种方法
Apr 29 #Javascript
You might like
php下将图片以二进制存入mysql数据库中并显示的实现代码
2010/05/27 PHP
PHP中文件读、写、删的操作(PHP中对文件和目录操作)
2012/03/06 PHP
js chrome浏览器判断代码
2010/03/28 Javascript
js防止表单重复提交实现代码
2012/09/05 Javascript
简单谈谈原生js的math对象
2017/06/27 Javascript
JavaScript输出所选择起始与结束日期的方法
2017/07/12 Javascript
hammer.js实现图片手势放大效果
2017/08/29 Javascript
原生JS实现动态加载js文件并在加载成功后执行回调函数的方法
2020/12/30 Javascript
vue-awesome-swiper 基于vue实现h5滑动翻页效果【推荐】
2018/11/08 Javascript
jQuery实现的自定义轮播图功能详解
2018/12/28 jQuery
记一次用vue做的活动页的方法步骤
2019/04/11 Javascript
微信小程序中显示倒计时代码实例
2019/05/09 Javascript
npm qs模块使用详解
2020/02/07 Javascript
vue实现禁止浏览器记住密码功能的示例代码
2021/02/03 Vue.js
Python中用format函数格式化字符串的用法
2015/04/08 Python
在Python中操作字符串之replace()方法的使用
2015/05/19 Python
深入理解Python中range和xrange的区别
2017/11/26 Python
Python wxPython库使用wx.ListBox创建列表框示例
2018/09/03 Python
python入门:这篇文章带你直接学会python
2018/09/14 Python
在Python中分别打印列表中的每一个元素方法
2018/11/07 Python
Python设计模式之迭代器模式原理与用法实例分析
2019/01/10 Python
Python多叉树的构造及取出节点数据(treelib)的方法
2019/08/09 Python
Pytorch 多维数组运算过程的索引处理方式
2019/12/27 Python
基于Python+QT的gui程序开发实现
2020/07/03 Python
HTML5学习笔记之History API
2015/02/26 HTML / CSS
测试驱动开发的主要步骤是什么
2014/12/10 面试题
大学生党课思想汇报
2013/12/29 职场文书
物流创业计划书
2014/02/01 职场文书
班组长岗位职责
2014/03/03 职场文书
公民授权委托书范本
2014/09/17 职场文书
群众路线教育实践活动心得体会(四风)
2014/11/03 职场文书
委托公证书样本
2015/01/23 职场文书
小学生读书笔记范文
2015/06/30 职场文书
初三数学教学反思
2016/02/17 职场文书
python脚本框架webpy模板赋值实现
2021/11/20 Python
springboot 全局异常处理和统一响应对象的处理方式
2022/06/28 Java/Android