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中定义对象类别
Dec 22 Javascript
javascript 通用简单的table选项卡实现
May 07 Javascript
JavaScript(js)设置默认输入焦点(focus)
Dec 28 Javascript
检查输入的是否是数字使用keyCode配合onkeypress事件
Jan 23 Javascript
javascript将url中的参数加密解密代码
Nov 17 Javascript
jQuery中appendTo()方法用法实例
Jan 08 Javascript
使用DeviceOne实现微信小程序功能
Dec 29 Javascript
Jquery鼠标放上去显示全名的实现方法
Feb 06 Javascript
微信小程序实现带刻度尺滑块功能
Mar 29 Javascript
axios的拦截请求与响应方法
Aug 11 Javascript
使用webpack构建应用的方法步骤
Mar 04 Javascript
js实现删除json中指定的元素
Sep 22 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/12/04 PHP
3种方法轻松处理php开发中emoji表情的问题
2016/07/18 PHP
php封装的mongodb操作类代码
2017/08/06 PHP
php基于session锁防止阻塞请求的方法分析
2017/08/07 PHP
Laravel 错误提示本地化的实现
2019/10/22 PHP
js中字符替换函数String.replace()使用技巧
2011/08/14 Javascript
js中eval详解
2012/03/30 Javascript
使用js获取地址栏中传递的值
2013/07/02 Javascript
Jquery中children与find之间的区别详细解析
2013/11/29 Javascript
快速解决jquery之get缓存问题的最简单方法介绍
2013/12/19 Javascript
jquery mobile界面数据刷新的实现方法
2016/05/28 Javascript
JS实现控制文本框的内容
2016/07/10 Javascript
BootStrap 动态添加验证项和取消验证项的实现方法
2016/09/28 Javascript
详解angular分页插件tm.pagination二次触发问题解决方案
2018/07/20 Javascript
使用JS判断移动端手机横竖屏状态
2018/07/30 Javascript
[20:39]DOTA2-DPC中国联赛 正赛开幕式 1月18日
2021/03/11 DOTA
搭建Python的Django框架环境并建立和运行第一个App的教程
2016/07/02 Python
python实现手机通讯录搜索功能
2018/02/22 Python
Python实现登陆文件验证方法
2018/10/06 Python
python 使用正则表达式按照多个空格分割字符的实例
2018/12/20 Python
python 画三维图像 曲面图和散点图的示例
2018/12/29 Python
python实现创建新列表和新字典,并使元素及键值对全部变成小写
2019/01/15 Python
python返回数组的索引实例
2019/11/28 Python
Python reshape的用法及多个二维数组合并为三维数组的实例
2020/02/07 Python
LightInTheBox西班牙站点:全球商品在线采购
2016/09/22 全球购物
会计与审计专业大专生求职信
2013/10/03 职场文书
《陋室铭》教学反思
2014/02/26 职场文书
亮化工程实施方案
2014/03/17 职场文书
开展读书活动总结
2014/06/30 职场文书
城市规划应届生推荐信
2014/09/08 职场文书
2015年小学生新年寄语
2014/12/08 职场文书
党小组评议意见
2015/06/02 职场文书
公司联欢会主持词
2015/07/04 职场文书
python flask框架快速入门
2021/05/14 Python
关于nginx 实现jira反向代理的问题
2021/09/25 Servers
Win10开机修复磁盘错误怎么跳过?Win10关闭开机磁盘检查的方法
2022/09/23 数码科技