使用 window.open 函数关闭所有子窗口
在前端开发中,经常需要打开多个子窗口来展示不同的页面内容。但是有时候需要一次性关闭所有这些子窗口,这时可以使用 window.open
函数来实现。
window.open
函数
window.open
函数用于打开一个新的浏览器窗口,并加载指定的 URL 地址。该函数的语法如下:
---------------- ----------- ------------------
其中,url
参数指定要加载的 URL 地址;windowName
参数指定浏览器窗口的名称,如果该名称已存在,则会在该窗口中加载 URL;windowFeatures
参数是一个可选参数,用于指定新窗口的属性(比如大小、位置、菜单栏等)。
关闭所有子窗口的方法
要关闭所有子窗口,首先需要获取当前所有打开的子窗口列表。可以通过 window.open
函数返回的窗口对象的 opener
属性获取当前窗口的父窗口对象,然后从父窗口对象中获取所有打开的子窗口列表。
获取子窗口列表后,就可以循环遍历所有子窗口并依次调用它们的 window.close()
方法来关闭它们。代码示例如下:
-------- ---------------------- - --- ------------ - --- --- ------------ - ------------- -- ------- -- ---------- --- ---- - - -- - - -------------------- ---- - --- --- - ---------------- -- ---- -- ----------- -- --- -- ------- - ----------------------- - - -- ------- ----------------------------- ----- - ------------ --- -
在上面的代码中,closeAllChildWindows
函数首先创建了一个空数组 childWindows
用于存储所有打开的子窗口。然后通过 window.opener
属性获取当前窗口的父窗口对象,如果当前窗口没有父窗口,则使用当前窗口作为父窗口。
接下来,使用一个循环遍历当前父窗口对象中所有子窗口,并将非关闭状态的子窗口添加到 childWindows
数组中。最后,使用 forEach
方法遍历 childWindows
数组并依次调用每个子窗口的 close()
方法来关闭它们。
示例代码
下面是一个完整的示例代码,可以将其复制粘贴到 HTML 页面中进行测试:
--------- ----- ------ ------ ------------ --- ----- --------------- -------- -------- ---------------------- - --- ------------ - --- --- ------------ - ------------- -- ------- -- ---------- --- ---- - - -- - - -------------------- ---- - --- --- - ---------------- -- ---- -- ----------- -- --- -- ------- - ----------------------- - - -- ------- ----------------------------- ----- - ------------ --- - --------- ------- ------ --------- --- ----- ------------ ------- -------------------------------------- --- ----- ---------------- ------- -------
在该示例代码中,点击页面上的按钮将会调用 closeAllChildWindows
函数来关闭所有打开的子窗口。
总结
使用 window.open
函数可以方便地打开多个浏览器窗口,而通过获取父窗口对象并遍历所有子窗口,可以实现一次性关闭所有子窗口。这对于需要同时展示多个页面内容的前端应用程序非常有用。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/3975