用window.open()方法打开一个子窗口后,可以得到这个子窗口的一个引用,并可以通过这个引用知道这个子窗口是否已被打开
var pWin = window.open(url);
if(pWin != null)
//窗口已被打开但在子窗口关闭后,pWin变量的值却没有恢复成null,请问如何判断子窗口已被关闭了呢?

解决方案 »

  1.   

    if(pWin)
    {
    //已关闭
    }
      

  2.   

    那你就需要在字窗口关闭的时候给父窗口传一个值才可以了!
    最简单的方法,你可以在父窗口中设一个hidden,然后给子窗口关闭的事件里写一个值,来改变hidden的值,你在父窗口就可以检测到是否被关闭了.
    下面给出你基本需要用的几个方法key:
    1.获得父窗口对象:window.opener
    2.隐藏域<input type=hidden name='name'/>
    --------------------------
    如果还不明白,我再写程序给你啊!
      

  3.   

    2楼的方法,说实话不大可行。window。open()打开的子窗口,带有标题栏的关闭按钮,如何向Openner传值呢。
      

  4.   

    我觉得这样做好些:
    var   pWin   =   window.open(url); 
    //判断子窗口是否被打开
    if(pWin != null){
    //窗口已被打开
    }
    //判断子窗口是否被关闭
    if(pWin.closed==true){
    //子窗口已被关闭
    }
      

  5.   

    2楼可行,body unload改变原窗体内容就行了
    或者
    打开时window.open(window,...)把自己传给子窗口,子窗口关闭时回调原窗口的某个函数但不管怎么样原窗口没关才行,所以这种场合更适合模式窗口的情况吧
      

  6.   

    7楼至理,的确有个.colsed方法判断其实例是否被关闭
      

  7.   

    如果是用任务管理器终止open的ie,也是无法捕获的