网上摘的帖子(比较乱!~~~~~··):
------------------------------------------------
父窗口弹出模态窗口代码:  
  var   a   =   window.showModalDialog("B.aspx?OID="+   OID,window,"dialogwidth:600px;dialogheight:300px;status:no;scroll:no");  
   
   
  模态窗口代码:  
   
  <script   language="javascript">  
  //得到父窗口的引用。  
  var   VarObject   =   window.dialogArguments;  
  //刷新父窗口  
  function   ReferParentWin()  
  {  
          //可以用VarObject调用父窗口内任何一个元素  
          //比如:VarObject.document.all["aaa"].value   就是得到父窗体内ID为aaa的文本框的值  
            if(VarObject   !=   null){  
  //刷新父窗体.  
  VarObject.location.reload();  
            }  
  }  
  </script>
 
--------------------------------------------------------------------------
 
window.showModalDialog("test.htm",window);  
  ----------------------对话框窗口中-------  
  var   parentWin   =   window.dialogArguments;  
  parentWin.functionName();
 
-------------------------------------------------------------------
 
要调用父窗体函数:  
   
  VarObject.父窗体函数名称
 
这里要注意的是,如果你的子页面在打开以后刷新过一次,用var   VarObject   =   window.dialogArguments;就不能得到父窗体引用了...  
  这个问题我一直没解决..
 
----------------------------------------------------------------------
 
showModalDialog和showModelessDialog数据传递技巧。
  (作者语:本来想用一问一答形式来写的,但是我想不出这个怎么问,所以只好这样了。)
  这个东西比较麻烦,我改了好几次了不是没办法说明白(语文水平越来越差了),只好用个例子说明了。
  例子:
    现在需要在一个showModalDialog(或showModelessDialog)里读取或设置一个变量var_name

      一般的传递方式:
        window.showModalDialog("filename.htm",var_name)
        //传递var_name变量
      在showModalDialog(或showModelessDialog)读取和设置时:
        alert(window.dialogArguments)//读取var_name变量
        window.dialogArguments="oyiboy"//设置var_name变量
    这种方式是可以满足的,但是当你想在操作var_name同时再操作第二个变理var_id时呢?就无法再进行操作了。这就是这种传递方式的局限性。
    
      以下是我建议使用的传递方式:
        window.showModalDialog("filename.htm",window)
        //不管要操作什么变量,只直传递主窗口的window对象
      在showModalDialog(或showModelessDialog)读取和设置时:
        alert(window.dialogArguments.var_name)//读取var_name变量
        window.dialogArguments.var_name="oyiboy"//设置var_name变量

        同时我也可以操作var_id变量
        alert(window.dialogArguments.var_id)//读取var_id变量
        window.dialogArguments.var_id="001"//设置var_id变量

        同样还可以对主窗口的任何对象进行操作,如form对象里的元素。
        window.dialogArguments.form1.index1.value="这是在设置index1元素的值"