IE关闭主窗口时,同时关闭所有的子窗口

时间:2021-10-23 23:50:13

我们在编写页面过程中,可能会通过 window.open 方法来打开多个子窗口。这样一来,在想关闭窗口的时候只能一个个的关闭所有打开的窗口,太烦了。那么有没有简单的办法,使得在关闭主窗口的时候,将所有附属的子窗口也一起关闭呢?嗯,既然写这篇BLOG了,答案肯定是有了哈。但不一定是很好的方法,只是实现了这个功能而已。其实,也没什么,只是在OPEN打开一个窗口时,使用一个数组记住了它的句柄。

上代码,如下,应该是一下就懂的,呵呵:

<html>
  <head>
    <title>IE关闭主窗口时,同时关闭所有的子窗口</title>
    <SCRIPT language=javascript>
	    // 声明一个数组来记录所有打开的子窗口
		var allChild = new Array();
		
		// 打开三个子窗口,并记录下它们的句柄
	    var child = window.open("./window_open_test2.html","_blank");
		allChild.push(child);
		
		child = window.open("./window_open_test2.html","_blank");
		allChild.push(child);
		
		child = window.open("./window_open_test2.html","_blank");
		allChild.push(child);
		
		// 关闭自己,同时关闭所有子窗口
        function closeAll() {
		  var tmp;
		  // undefined 不能加引号,即不可写成 "undefined"
		  while((tmp = allChild.pop()) != undefined) {
		    tmp.close();
		  }
		  window.close();
	    }
    </SCRIPT>
  <head>
  <body>
      <input type="button" value="close" onclick="closeAll();" />
  </body>
</html>