当前位置: 首页 > 编程笔记 >

函数window.open实现关闭所有的子窗口

谢俊悟
2023-03-14
本文向大家介绍函数window.open实现关闭所有的子窗口,包括了函数window.open实现关闭所有的子窗口的使用技巧和注意事项,需要的朋友参考一下

此文介绍了如何用window.open方法打开一个子窗口,当我们要关闭主窗口时,这时候所有的子窗口也会跟着关闭。下面有我的实现思路和代码,分享给大家。

实现思路:
1.打开子窗口函数window.open(url,winName)的第二个参数winName可以唯一标识打开的窗口。因此关闭子窗口只需要使用winName.close()函数即可。
2.一个页面可能有多个子窗口。因此需要一个数组存储所有子窗口对象。关闭时,遍历数组即可。
3.子窗口还可以再打开子窗口。无限循环下去。因此需要判断。
此需求可以通过两个方法实现。

调用子窗口的关闭函数。
此方法易于理解,但是实际实现过程中发现浏览器的关闭事件并没有。且需要是按钮点击关闭还是快捷键关闭,稍微麻烦一些、递归关闭子窗口
此方法实现简单,缺点就是所有的窗口存储子窗口的对象数组需同名

下面是使用递归关闭子窗口及子窗口的子窗口方法

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();
    }
  }
}

以上就是本文的全部叙述,希望对大家有所帮助。

 类似资料:
  • 本文向大家介绍c# 实现子窗口关闭父窗口也关闭的方法,包括了c# 实现子窗口关闭父窗口也关闭的方法的使用技巧和注意事项,需要的朋友参考一下 其实是窗口间通讯的问题,在form1上打开form2 ,form2 关闭时关闭form1 实现方法: 在子窗口form2中声明事件: 然后在它的关闭事件中触发本事件: 在父窗口form1中(比如登陆窗口中): 然后弹出子form2窗体的地方这样写: 以上这篇c

  • 本文向大家介绍C#实现关闭子窗口而不释放子窗口对象的方法,包括了C#实现关闭子窗口而不释放子窗口对象的方法的使用技巧和注意事项,需要的朋友参考一下 在线扫描相机的调试过程中,需要开辟调试界面来进行位置的配置。调试结束后,一种常用的方式是将调试参数保存并在下次启动时加载。另一种简单方式是直接使用该参数运行程序。因此,在后一种情况下,需要实现的功能是:即使关闭调试窗口,其窗口对象也不释放。除非其主窗口

  • 当在界面中使用 window.open 来创建一个新的窗口时候,将会创建一个 BrowserWindow 的实例,并且将返回一个标识,这个界面通过标识来对这个新的窗口进行有限的控制. 这个标识对传统的web界面来说,通过它能对子窗口进行有限的功能性兼容控制. 想要完全的控制这个窗口,可以直接创建一个 BrowserWindow . 新创建的 BrowserWindow 默认为继承父窗口的属性参数,

  • 打开一个新窗口并加载 URL。 当调用 window.open 以在网页中创建新窗口时,将为url创建一个新的BrowserWindow 实例,并返回一个代理至 window.open 以让页面对其进行有限的控制。 该代理具有有限的标准功能,与传统网页兼容。要完全控制新窗口,你应该直接创建一个BrowserWindow。 默认情况下, 新创建的 BrowserWindow 将继承父窗口的选项。若要

  • 本文向大家介绍JS关闭子窗口并且刷新上一个窗口的实现示例,包括了JS关闭子窗口并且刷新上一个窗口的实现示例的使用技巧和注意事项,需要的朋友参考一下 在开发后台项目的时候产品那边提出了这个一个需求:用户点击“选择模板”的时候会弹出一个新窗口,在新窗口选择模板点击确定后,会关闭当前的新窗口,并且原来的那个窗口自动显示用户在新窗口的选择项。 这样会涉及到一个技术点,就是怎么通过JS来实现关闭子窗口并且刷

  • 我正在使用(以前是atom-shell),并希望有一个极简主义的框架窗口,以便三个OSX窗口按钮(关闭,最大化,最小化)从超文本标记语言页面内可见。 在定义