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 HotKeys轻松搞定键盘事件代码
Aug 30 Javascript
ExtJS 设置级联菜单的默认值
Jun 13 Javascript
基于jquery的让textarea自适应高度的插件
Aug 03 Javascript
jquery validation验证身份证号,护照,电话号码,email(实例代码)
Nov 06 Javascript
jquery html动态生成select标签出问题的解决方法
Nov 20 Javascript
JQuery与JS里submit()的区别示例介绍
Feb 17 Javascript
jQuery中siblings()方法用法实例
Jan 08 Javascript
JavaScript合并两个数组并去除重复项的方法
Jun 13 Javascript
JavaScript Array对象详解
Mar 01 Javascript
Vue仿手机qq的实例代码(demo)
Sep 08 Javascript
Vue2.2.0+新特性整理及注意事项
Aug 22 Javascript
JS 实现发送短信验证码的“59秒后重新发送验证短信”功能
Aug 23 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
substr()函数中文版
2006/10/09 PHP
一个简单的PHP投票程序源码
2007/03/11 PHP
解析php中memcache的应用
2013/06/18 PHP
关于php 接口问题(php接口主要也就是运用curl,curl函数)
2013/07/01 PHP
PHP计算加权平均数的方法
2015/07/16 PHP
php同时使用session和cookie来保存用户登录信息的实现代码
2016/05/13 PHP
PHP版单点登陆实现方案的实例
2016/11/17 PHP
php常用字符函数实例小结
2016/12/29 PHP
Yii 2中的load()和save()示例详解
2017/08/03 PHP
php swoft框架实例用法
2020/12/22 PHP
锋利的jQuery 要点归纳(一) jQuery选择器
2010/03/21 Javascript
js判断FCKeditor内容是否为空的两种形式
2013/05/14 Javascript
IE中getElementsByName()对有些元素无效的解决方案
2014/09/28 Javascript
JavaScript使用正则表达式获取全部分组内容的方法示例
2017/01/17 Javascript
tab栏切换原理
2017/03/22 Javascript
原生JS实现移动端web轮播图详解(结合Tween算法造轮子)
2017/09/10 Javascript
Layui数据表格之获取表格中所有的数据方法
2018/08/20 Javascript
vue使用better-scroll实现下拉刷新、上拉加载
2018/11/23 Javascript
一百行JS代码实现一个校验工具
2019/04/30 Javascript
Vue  webpack 项目自动打包压缩成zip文件的方法
2019/07/24 Javascript
微信小程序实现电子签名功能
2020/07/29 Javascript
JS面向对象实现飞机大战
2020/08/26 Javascript
通过vue.extend实现消息提示弹框的方法记录
2021/01/07 Vue.js
Python使用cookielib模块操作cookie的实例教程
2016/07/12 Python
postman模拟访问具有Session的post请求方法
2019/07/15 Python
python正则表达式匹配IP代码实例
2019/12/28 Python
python访问hdfs的操作
2020/06/06 Python
美国休闲服装品牌:Express
2016/09/24 全球购物
软件测试有哪些?什么是配置项?
2012/02/12 面试题
如何通过 CSS 写出火焰效果
2021/03/24 HTML / CSS
委托证明的格式
2014/01/10 职场文书
详细的本科生职业生涯规划范文
2014/09/16 职场文书
2015初中教导处工作总结
2015/07/21 职场文书
公司人力资源管理制度
2015/08/05 职场文书
员工试用期工作总结
2019/06/20 职场文书
MySQL如何快速创建800w条测试数据表
2022/03/17 MySQL