回 帖 发 新 帖 刷新版面

主题:window对象的open方法

写了如下代码,作用是当打开该网页文件5秒后,在新窗口中打开一个名为infomation.html的网页,并且当主窗口关闭时,此窗口也跟着关闭。

<script language=javascript>
 function openNew()
    {
       var child=window.open("information.html","_blank","top=10,left=10,width=200,height=200,toolbar=no");
    }
 setTimeout("openNew()",5000);

 function closeChild()
    {
        if (!child.closed)
        {
            child.close();
        }
    }
</script>
<body onunload="closeChild()">
</body>
可是运行的结果是,当主窗口关闭时,子窗口并不关闭。将代码改写成如下的形式;
<script language=javascript>
  
       var child=window.open("information.html","_blank","top=10,left=10,width=200,height=200,toolbar=no");
     

 function closeChild()
    {
        if (!child.closed)
        {
            child.close();
        }
    }
</script>
<body onunload="closeChild()">
</body>
就可以达到预想的效果。不知道前面的代码哪里出了问题。

回复列表 (共2个回复)

沙发

function openNew()
    {
       var child=window.open("information.html","_blank","top=10,left=10,width=200,height=200,toolbar=no");
    }

中,
child只是一个局部变量
所以closeChild函数中child是空值

板凳

呵呵,恍然大悟啊,谢谢你总是及时回答我的问题。
这麽说,在 function openNew()的前面加上这末一句就可以了: var child;

我来回复

您尚未登录,请登录后再回复。点此登录或注册