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 相关文章推荐
用JavaScript获取网页中的js、css、Flash等文件
Dec 20 Javascript
javascript设计模式 封装和信息隐藏(上)
Jul 24 Javascript
jQuery级联操作绑定事件实例
Sep 02 Javascript
javascript显示中文日期的方法
Jun 18 Javascript
JS实现双击屏幕滚动效果代码
Oct 28 Javascript
javascript实现下拉提示选择框
Dec 29 Javascript
Angular.JS实现无限级的联动菜单(使用demo)
Feb 08 Javascript
Vue.js列表渲染绑定jQuery插件的正确姿势
Jun 29 jQuery
React组件中的this的具体使用
Feb 28 Javascript
Vue实现双向绑定的原理以及响应式数据的方法
Jul 02 Javascript
AngularJS上传文件的示例代码
Nov 10 Javascript
vue路由前进后退动画效果的实现代码
Dec 10 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获取某个目录大小的代码
2008/09/10 PHP
php的日期处理函数及uchome的function_coomon中日期处理函数的研究
2011/01/12 PHP
用Javascript评估用户输入密码的强度(Knockout版)
2011/11/30 Javascript
js jquery验证银行卡号信息正则学习
2013/01/21 Javascript
JS获得QQ号码的昵称,头像,生日的简单实例
2013/12/04 Javascript
Node.js开源应用框架HapiJS介绍
2015/01/14 Javascript
深入学习JavaScript对象
2015/10/13 Javascript
基于jQuery实现仿QQ空间送礼物功能代码
2016/05/24 Javascript
jQuery实现自动调用和触发某个事件的方法
2016/11/18 Javascript
Js apply方法详解
2017/02/16 Javascript
vue货币过滤器的实现方法
2017/04/01 Javascript
js 获取今天以及过去日期
2017/04/11 Javascript
JavaScript实现简单音乐播放器
2020/04/17 Javascript
配置node服务器并且链接微信公众号接口配置步骤详解
2019/06/21 Javascript
JavaScript实现Tab选项卡切换
2020/02/13 Javascript
vue+elementUI(el-upload)图片压缩,默认同比例压缩操作
2020/08/10 Javascript
Python实现从url中提取域名的几种方法
2014/09/26 Python
python使用cStringIO实现临时内存文件访问的方法
2015/03/26 Python
解析Python中while true的使用
2015/10/13 Python
Python的SQLalchemy模块连接与操作MySQL的基础示例
2016/07/11 Python
numpy中实现ndarray数组返回符合特定条件的索引方法
2018/04/17 Python
浅谈tensorflow1.0 池化层(pooling)和全连接层(dense)
2018/04/27 Python
对Tensorflow中Device实例的生成和管理详解
2020/02/04 Python
基于Tensorflow的MNIST手写数字识别分类
2020/06/17 Python
Python3 pyecharts生成Html文件柱状图及折线图代码实例
2020/09/29 Python
英国领先的珍珠首饰品牌:Orchira
2016/09/11 全球购物
Fabletics官网:美国运动服饰品牌,由好莱坞女演员凯特·哈德森创立
2019/10/19 全球购物
社会实践自我鉴定
2013/11/07 职场文书
数控专业大学生的自我鉴定
2013/11/13 职场文书
机关门卫制度
2014/02/01 职场文书
产品质量承诺书
2014/03/27 职场文书
文明家庭先进事迹材料
2014/05/14 职场文书
学雷锋志愿者活动总结
2014/06/27 职场文书
2014年统计工作总结
2014/11/21 职场文书
2015年教师新年寄语
2014/12/08 职场文书
2016年春节慰问信息大全
2015/11/30 职场文书