首页 > 代码库 > window.open 打开子窗体,关闭全部的子窗体
window.open 打开子窗体,关闭全部的子窗体
需求:通过window.open方法打开了子窗体,当关闭主窗体时。子窗体应当也关闭。
实现思路:
1.打开子窗体函数window.open(url,winName)的第二个參数winName能够唯一标识打开的窗体。因此关闭子窗体仅仅须要使用winName.close()函数就可以。
2.一个页面可能有多个子窗体。
因此须要一个数组存储全部子窗体对象。关闭时,遍历数组就可以。
3.子窗体还能够再打开子窗体。
无限循环下去。因此须要推断。
此需求能够通过两个方法实现。
调用子窗体的关闭函数。
此方法易于理解,可是实际实现过程中发现浏览器的关闭事件并没有。且须要是button点击关闭还是快捷键关闭,略微麻烦一些、
递归关闭子窗体
此方法实现简单,缺点就是全部的窗体存储子窗体的对象数组需同名
以下是使用递归关闭子窗体及子窗体的子窗体方法
function closeSonWindow(win){
for(var index=0;index<win.length;index++){
//假设窗体已关闭
if(win[index].closed){
continue;
}
//假设窗体没有能够打开的子窗体
if(typeof(win[index].openedWindow)=="undefined"){
win[index].close();
continue;
}
if(win[index].openedWindow.length==0){
win[index].close();
}else{
closeSonWindow(win[index].openedWindow);
win[index].close();
}
}
}
window.open 打开子窗体,关闭全部的子窗体
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。