做一个页面,页面中有链接按钮(可打开新的页面),点关闭则关闭所有子页面和父页面。
 
要求:不能提前获得页面句柄然后关闭,句柄用Windows对象获得。
已做代码:
<html>
<head>
<title>关闭所有子窗口的test</title>
<script laguage="javascript">
      var i=0;
      var subWindows = new Array();
function openSubWindows(){
      subWindows[i]=window.open("http://www.baidu.com");
      i++;
      return subWindows;
}
function closeSubwindows(){
            while(i>0){
                subWindows[i-1].close();
                i--;
            }
}
</script>
</head>
<body>
<P><BUTTON style="WIDTH: 58px; HEIGHT: 24px"     onclick="openSubWindows()">
<DIV align=center>baidu</DIV></BUTTON></P>
<P></P>
<P><BUTTON style="WIDTH: 58px; HEIGHT: 24px"  onclick="closeSubwindows()">
<DIV align=center>close</DIV></BUTTON></P>
<P></P>
</body>
</html>
代码中是关闭已经定义好的句柄。要求不预先设定句柄实现关闭效果。感谢各位赐教!!最好附上源码。

解决方案 »

  1.   

    没看懂lz的意思~

    window.opener.close()?
      

  2.   


    不太理解你说的句柄.
    你所说的      var i=0; 
          var subWindows = new Array(); 
    function openSubWindows(){ 
          subWindows[i]=window.open("http://www.baidu.com"); 
          i++; 
          return subWindows; 

    function closeSubwindows(){ 
                while(i>0){ 
                    subWindows[i-1].close(); 
                    i--; 
                } 
    } subWindows中装载的是打开window的对象引用.
    当然如果不引用这些window那当然也找不到打开的win对象了.window.open();这个方法返回的就是一个win对象 若要是说到"关闭"这个事件句柄那么
    不论怎么样,要想关闭页面就需要close这个事件来出发.
    若没有这个事件,也就没有系统和浏览器之间的通讯接口.
    系统就是靠监听close事件句柄来对浏览器进行操作的