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 相关文章推荐
JQuery记住用户名和密码的具体实现
Apr 04 Javascript
js获取ajax返回值代码
Apr 30 Javascript
JS实现的自定义网页拖动类
Nov 06 Javascript
基于javascript实现listbox左右移动
Jan 29 Javascript
js 动态添加元素(div、li、img等)及设置属性的方法
Jul 19 Javascript
浅谈JS使用[ ]来访问对象属性
Sep 21 Javascript
webpack中如何加载静态文件的方法步骤
May 18 Javascript
详解Vue.js和layui日期控件冲突问题解决办法
Jul 25 Javascript
改变layer confirm弹窗按钮的颜色方法
Sep 12 Javascript
Vue的click事件防抖和节流处理详解
Nov 13 Javascript
Js实现复选框的全选、全不选反选功能代码实例
Feb 28 Javascript
详解Javascript实践中的命令模式
May 05 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封装的数据库保存session功能类
2016/07/11 PHP
php多线程并发实现方法
2016/09/30 PHP
理解JavaScript中的对象 推荐
2011/01/09 Javascript
js中arguments,caller,callee,apply的用法小结
2014/01/28 Javascript
JS实现带提示的星级评分效果完整实例
2015/10/30 Javascript
JavaScript转换与解析JSON方法实例详解
2015/11/24 Javascript
深入解析AngularJS框架中$scope的作用与生命周期
2016/03/05 Javascript
jQuery实现鼠标选文字发新浪微博的方法
2016/04/02 Javascript
jQuery 如何给Carousel插件添加新的功能
2016/04/18 Javascript
js检查是否关闭浏览器的方法
2016/08/02 Javascript
深入理解JS中的Function.prototype.bind()方法
2016/10/11 Javascript
图文详解Javascript中的上下文和作用域
2017/02/15 Javascript
Vue实现双向数据绑定
2017/05/03 Javascript
BootStrap入门学习第一篇
2017/08/28 Javascript
js的新生代垃圾回收知识点总结
2019/08/22 Javascript
使用Vant完成Dialog弹框案例
2020/11/11 Javascript
详解Python的Flask框架中生成SECRET_KEY密钥的方法
2016/06/07 Python
开源软件包和环境管理系统Anaconda的安装使用
2017/09/04 Python
Python高级特性切片(Slice)操作详解
2018/09/27 Python
Python Pexpect库的简单使用方法
2019/01/29 Python
Python逐行读取文件内容的方法总结
2020/02/14 Python
30行Python代码实现高分辨率图像导航的方法
2020/05/22 Python
浅谈python opencv对图像颜色通道进行加减操作溢出
2020/06/03 Python
如何用Python徒手写线性回归
2021/01/25 Python
应用心理学个人的求职信
2013/12/08 职场文书
往来会计岗位职责
2013/12/19 职场文书
创建卫生先进单位实施方案
2014/03/10 职场文书
本科毕业生求职自荐信
2014/04/09 职场文书
读书月活动方案
2014/05/22 职场文书
警察群众路线整改措施
2014/09/26 职场文书
先进教师个人总结
2015/02/11 职场文书
中职班主任培训心得体会
2016/01/07 职场文书
php实例化对象的实例方法
2021/11/17 PHP
JavaScript事件的委托(代理)的用法示例详解
2022/02/18 Javascript
不负正版帝国之名 《重返帝国》引领SLG手游制作新的标杆
2022/04/07 其他游戏
java获取一个文本文件的编码(格式)信息
2022/09/23 Java/Android