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 获取浏览器高度和宽度值(多浏览器)
Sep 02 Javascript
javascript中的prototype属性使用说明(函数功能扩展)
Aug 16 Javascript
jquery easyui滚动条部分设置介绍
Sep 12 Javascript
利用javascript实现web页面中指定区域打印
Oct 30 Javascript
javascript怎么禁用浏览器后退按钮
Mar 27 Javascript
jQuery使用Layer弹出层插件闪退问题
Dec 22 Javascript
js获取一组日期中最近连续的天数
May 25 Javascript
AngularJs导出数据到Excel的示例代码
Aug 11 Javascript
基于ES6 Array.of的用法(实例讲解)
Sep 05 Javascript
Javascript中绑定click事件的四种方式介绍
Oct 26 Javascript
小白教程|一小时上手最流行的前端框架vue(推荐)
Apr 10 Javascript
js实现鼠标滑动到某个div禁止滚动
Sep 17 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 FileSystem 文件系统常用api整理总结
2019/07/12 PHP
PHP实现发送微博消息功能完整示例
2019/12/04 PHP
jquery中获取select选中值的代码
2011/06/27 Javascript
限制textbox或textarea输入字符长度的JS代码
2013/10/16 Javascript
node-webkit打包成exe文件被360误报木马的解决方法
2015/03/11 Javascript
基于BootStrap Metronic开发框架经验小结【七】数据的导入、导出及附件的查看处理
2016/05/12 Javascript
完美实现八种js焦点轮播图(下篇)
2020/04/20 Javascript
Angular动态添加、删除输入框并计算值实例代码
2017/03/29 Javascript
原生JS+Canvas实现五子棋游戏实例
2017/06/19 Javascript
mint-ui在vue中的使用示例
2018/04/05 Javascript
laydate如何根据开始时间或者结束时间限制范围
2018/11/15 Javascript
JS开发 富文本编辑器TinyMCE详解
2019/07/19 Javascript
vue集成chart.js的实现方法
2019/08/20 Javascript
关于layui 弹出层一闪而过就消失的解决方法
2019/09/09 Javascript
Django的models中on_delete参数详解
2019/07/16 Python
Tensorflow 实现分批量读取数据
2020/01/04 Python
python中使用you-get库批量在线下载bilibili视频的教程
2020/03/10 Python
执行Python程序时模块报错问题
2020/03/26 Python
Python列表去重复项的N种方法(实例代码)
2020/05/12 Python
Python实现封装打包自己写的代码,被python import
2020/07/12 Python
几个Linux面试题笔试题
2012/12/01 面试题
介绍一下except的用法和作用
2015/01/22 面试题
商务助理岗位职责
2013/11/13 职场文书
大学生个人实习的自我评价
2014/02/15 职场文书
入职担保书怎么写
2014/05/12 职场文书
企业领导对照检查材料
2014/08/20 职场文书
群众路线自查自纠工作情况报告
2014/10/28 职场文书
学生检讨书范文
2014/10/30 职场文书
国家助学贷款承诺书
2015/04/30 职场文书
法定代表人资格证明书
2015/06/18 职场文书
答谢酒会主持词
2015/07/02 职场文书
python3.9之你应该知道的新特性详解
2021/04/29 Python
Python实现生活常识解答机器人
2021/06/28 Python
Windows 64位 安装 mysql 8.0.28 图文教程
2022/04/19 MySQL
python如何为list实现find方法
2022/05/30 Python
类和原型的设计模式之复制与委托差异
2022/07/07 Javascript