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 asp.net 获取当前超链接中的文本
Apr 14 Javascript
jquery入门——事件机制之事件中的冒泡现象示例解释
Sep 12 Javascript
js播放wav文件(源码)
Apr 22 Javascript
JavaScript中判断对象类型的几种方法总结
Nov 11 Javascript
20条学习javascript的编程规范的建议
Nov 28 Javascript
JavaScript常用脚本汇总(二)
Mar 04 Javascript
js利用正则表达式检验输入内容是否为网址
Jul 05 Javascript
js实现无缝滚动图
Feb 22 Javascript
自适应布局meta标签中viewport、content、width、initial-scale、minimum-scale、maximum-scale总结
Aug 18 Javascript
在Swiper内如何制作CSS3动画效果示例代码
Dec 07 Javascript
在angularJs中进行数据遍历的2种方法
Oct 08 Javascript
js实现上下左右键盘控制div移动
Jan 16 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实现禁用IE和火狐的缓存问题
2012/12/03 PHP
PHP入门经历和学习过程分享
2014/04/11 PHP
PHP实现HTML页面静态化的方法
2015/11/04 PHP
浅谈php调用python文件
2019/03/29 PHP
用jQuery扩展自写的 UI导航
2010/01/13 Javascript
基于JQuery的访问WebService的代码(可访问Java[Xfire])
2010/11/19 Javascript
js获取键盘按键响应事件(兼容各浏览器)
2013/05/16 Javascript
Javascript页面添加到收藏夹的简单方法
2013/08/07 Javascript
javascript动态添加、修改、删除对象的属性与方法详解
2014/01/27 Javascript
jquery使用slideDown实现模块缓慢拉出效果的方法
2015/03/27 Javascript
浅析jquery unbind()方法移除元素绑定的事件
2016/05/24 Javascript
Bootstrap Modal对话框如何在关闭时触发事件
2016/12/02 Javascript
从零开始学习Node.js系列教程一:http get和post用法分析
2017/04/13 Javascript
详解微信小程序Page中data数据操作和函数调用
2017/09/27 Javascript
JS运动特效之完美运动框架实例分析
2018/01/24 Javascript
JavaScript中使用import 和require打包后实现原理分析
2018/03/07 Javascript
深入浅析AngularJs模版与v-bind
2018/07/06 Javascript
Nodejs处理异常操作示例
2018/12/25 NodeJs
vue实现点击按钮切换背景颜色的示例代码
2020/06/23 Javascript
Python中捕捉详细异常信息的代码示例
2014/09/18 Python
Python 的 Socket 编程
2015/03/24 Python
python实现发送邮件及附件功能
2021/03/02 Python
对Python2与Python3中__bool__方法的差异详解
2018/11/01 Python
Python 数据库操作 SQLAlchemy的示例代码
2019/02/18 Python
Python+pyftpdlib实现局域网文件互传
2020/08/24 Python
CSS3 画基本图形,圆形、椭圆形、三角形等
2016/09/20 HTML / CSS
canvas实现二维码和图片合成的示例代码
2018/08/01 HTML / CSS
学校十一活动方案
2014/02/01 职场文书
小学英语教学反思案例
2014/02/04 职场文书
《列夫托尔斯泰》教学反思
2014/02/10 职场文书
《小猫刮胡子》教学反思
2014/02/21 职场文书
《埃及的金字塔》教学反思
2014/04/07 职场文书
服装仓管员岗位职责
2014/06/17 职场文书
2015年文秘个人工作总结
2015/10/14 职场文书
浅谈Python协程asyncio
2021/06/20 Python
HDFS免重启挂载新磁盘
2022/04/06 Servers