页面A.html 弹出一个模态窗体B,然后再从B窗体弹出一个模态窗体C ,然后再从C窗体得到B窗体的值!

解决方案 »

  1.   

    a.html<script type="text/javascript"> 
    var a = "x"
    window.onload=function(){
      showModalDialog("b.html",self);  
    }
    </script>
    b.html<script type="text/javascript"> 
    var b = "xx"
    var win;
    window.onload=function(){
      win = dialogArguments ;
      showModalDialog("c.html",self);
    }
    </script>
    c.html<script type="text/javascript"> 
    var win;
    window.onload=function(){
      win = dialogArguments ;
      alert(win.b)
    }
    </script> 
      

  2.   


    showModelessDialog只有IE支持,
    showModalDialog基本上FF3.0,Safari也支持。
      

  3.   

    使用showModalDialog 打开模态窗口 然后使用dialogArguments 接收父窗口的值 使用returnValue()接受子窗口的返回值
      

  4.   

    给2楼加点注释
    A.html<script type="text/javascript"> 
    var a = "x"
    window.onload=function(){
      showModalDialog("b.html",self);  
      /*第一个参数是要打开的页面,第二个参数是传递给子页面的参数,
         该参数可以是对象。此处把父窗体本身传给了子窗口,也可以用window
        即showModalDialog("B.html",window);
         在子窗口中用 window.dialogArguments 表示该参数的值
         因为此处将 父的window对象传给子页面,也就是 
         子页面的window.dialogArguments = 父的window
                                            */
    }
    </script>
    B.html<script type="text/javascript"> 
    var b = "xx"
    var win;
    window.onload=function(){
      win = dialogArguments ; // dialogArguments表示父窗口的window对象,可以调用父的函数及变量
      showModalDialog("c.html",self);//以此类推,不论依次弹出多少个模态框,除父窗口不一样外,其他形式都是一样。
    }
    </script>