可以解决,办法是:
首先在A中要定义一个Array,要保存A,B,C,D四个窗口的对象
在A中创建B,此时B的window对象可以得到的,保存起来
在B中创建C, B中能得到C的window对象,通过调用A中的函数,可以保存C的窗口
类似上关闭某一窗口时候,通过对Array对象的搜索控制,可以打到效果的。

解决方案 »

  1.   

    在A,B,C,D四个页面中分别加入如下代码即可:
    注意:窗口名必须不同
    <script>
    var win=window.open("about:blank",窗口名)//窗口名必须不同
    function unload(){
     win.close()
    }
    window.onunload=unload;
    </script>
      

  2.   

    非常感谢,再问一个小问题:能否做到A弹出B后,就只能在B上做工作,不能切换到A窗口,如果B再弹出C,就只能在B上做工作,不能切换到A,B窗口???
    用模式窗口好像不行,请高手指点。
      

  3.   

    非常感谢,再问一个小问题:能否做到A弹出B后,就只能在B上做工作,不能切换到A窗口,如果B再弹出C,就只能在C上做工作,不能切换到A,B窗口???
    用模式窗口好像不行,请高手指点。 
      

  4.   

    在a.htm里
    window.showModalDialog("b.htm");
    在b.htm里
    window.showModalDialog("c.htm");
    在c.htm里
    window.showModalDialog("d.htm");
      

  5.   

    不行啊,A弹出B是模式窗口,但是B就不能弹出C来了,还是在B窗口中刷新成C.
      

  6.   

    不好意思,还有一点问题:
    我的B窗口是jsp文件,有另外一按钮需要刷新该B窗口,但是点这个按钮,却去另外开了一个新窗口显示刷新后的B窗口了。请看代码:aaa.html<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="">
    <META NAME="Keywords" CONTENT="">
    <META NAME="Description" CONTENT="">
    <script>
    function gobbb(){
    var win=window.showModalDialog("bbb.jsp","BBB");
    }
    </script>  
    </HEAD><BODY>
    AAAAAAAAAAAAAA<br><br>
    <input type=button name=aaa value="AAA" onclick="gobbb()">
    </BODY>
    </HTML>bbb.jsp<HTML>
    <HEAD>
    <TITLE> BBBBBBBBB </TITLE>
    <script>
    function goccc(){
    var win=window.showModalDialog("ccc.jsp","CCC");
    }
    function gocccoo(){
    document.form1.action="bbb.jsp";
    document.form1.target="BBB";
    document.form1.method="post";
    document.form1.submit();
    }
    </script>
    </HEAD>
    <BODY>
    BBBBBBBBBBB<br><br>
    <input type=button name=bbb value="BBB" onclick="goccc()">
    <form action="" method=post name=form1>
    <input type=submit name="111" value="oo" onclick="gocccoo()">
    </form>
    <%
    if (request.getParameter("111")!=null)
    {
    out.print("The BBBBBBB Next!<br>");
    }
    else
    {
    out.print("The BBBBBBB First!<br>");
    }
    %>
    </BODY>
    </HTML>
      

  7.   

    由于模式窗口的限制,他不能成为一个window的target。上面的问题需要另外想办法。
      

  8.   

    其中的一个方法,可以使用一般的window模拟模式对话框如果还有问题,欢迎到http://www.ruted.com/forum?forumid=1来问:)