如何在关闭父窗体的同时关闭其所有的子窗体,不使用ShowModelessDialog()可不可以,

解决方案 »

  1.   

    好像不可能,IE的运行机制和WIN不一样
      

  2.   

    晕啊,大家看看这个
    http://community.csdn.net/Expert/TopicView3.asp?id=4138082
    里面讲的我不是很清楚,本人对js基本一窍不通,汗啊,
    请教各位了
      

  3.   

    1.主窗体加下面的脚本:也就是每次打开新页面用openwindow()函数打开!
    <script lang="javascript">
    var childwin;
    function openwindow()
    {
    childwin=window.open('b.aspx','pg','toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=no,resizable=no,copyhistory=yes');
    childwin.location.reload();
    childwin.focus();
    }
    </script>
    父页通过openwindow方法打开子页.
      

  4.   

    2.当父窗口关闭的时候触发下面的事件window.onbeforeunload = function()
    {
    //判断窗口是否关闭
    var n = window.event.screenX - window.screenLeft;
    var b = n > document.documentElement.scrollWidth-20;
    if(b && window.event.clientY < 0 || window.event.altKey)
    {
    //如果是,再判断当前页面打开的窗口是否已经关闭
    if(childwin!=null)
    {
    //如果打开的窗口还在,那么,关闭打开的窗口
    childwin=null;
    //关闭本窗口
    window.close();
    }
    }
    }
      

  5.   

    同意  yb2008(努力学ASP.NET!!) 
    ================主窗口对每个打开的子窗口都有一个handle;
    在主窗口关闭的事件中对每个有效的子窗口handle进行关闭操作
      

  6.   

    同意  yb2008(努力学ASP.NET!!) 
      

  7.   

    我的代码是:
    this.Response.Write("<script>childwin=window.open('textEdit.aspx', 'myEdit', 'height=500px, width=640px, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no')</script>");
    this.Response.Write("<script>childwin.focus()</script>");然后关闭那部分是一样的,这样做好像不行,
    关闭父窗体的时候提示说要关闭当前浏览页,关闭后子窗体仍然存在
    不知道哪里出了问题
      

  8.   

    找到原因了
    关闭那部分的代码改成:
    if(childwin!=null&&childwin.open&&!childwin.closed)
    {
      //如果打开的窗口还在,那么,关闭打开的窗口
      childwin.close()
      //关闭本窗口
      //window.close();
    }
    使用close方法,=null效果不好
      

  9.   

    不使用ShowModelessDialog()不行。
    window.open和超连接打开的窗口和主窗口无父子关系。无法控制。
      

  10.   

    yb2008(努力学ASP.NET!!) ( ) 
    是对的、使用childwin记录window.open将所有的子窗体。然后关闭
      

  11.   

    新问题,如果执行window.onbeforeunload的时候已经手动关闭了子窗体,会出错,说childwin没有定义,在脚本里事先定义一个 var childwin
    也不行,请教各位大虾了
      

  12.   

    可是现在是不使用对话框,现在也就是一个关于js的问题
    window.onbeforeunload = function()
    {
    //判断窗口是否关闭
    var n = window.event.screenX - window.screenLeft;
    var b = n > document.documentElement.scrollWidth-20;
    if(b && window.event.clientY < 0 || window.event.altKey)
    {
    //如果是,再判断当前页面打开的窗口是否已经关闭
    if(childwin!=null)
    {
    //如果打开的窗口还在,那么,关闭打开的窗口
    childwin.close();
    //关闭本窗口
    window.close();
    }
    }
    }
    里面的childwin如果在已经关闭了子窗体的情况下是有问题的,如果没有打开过子窗体就关闭父窗体是不会出错的,定义一个var childwin 没有用,不知道还有什么办法,对js不熟悉啊