<html>
<head>
<script language="javascript">
function testdialog() {
   var w_call = window.showModalDialog( "dialog.htm", "", 
            "dialogWidth=200,dialogHeight=200") ;
   window.document.all.msg.value = w_call;
}
</script>
</head>
<body">
content goes here: <a href=# onclick="testdialog()">aaa</a>
<input type=text name="msg" value="">
</body>
</html> dialog.htm:
<html>
<head>
</head>
<body onunload="window.returnValue='aaaa';">
close me.
</body>
</html> 只能返回一个值。但你可以将多个值组合后返回然后再拆分。

解决方案 »

  1.   

    你可以用get方法传给子页面啊,即在URL里面加参数,在子页面用Value=Request.QueryString("paraName")得到.
      

  2.   

    不行呀,好像。对了,还有一个新问题,是不是在showModalDialog自身里面打开链接。(一点链接就打开一个IE窗口)这是为什么?????
      

  3.   

    我的理解, 你可能是想在多个page之间共享数据, 因为页面和模式对话框完全是两个概念. 在多个页面之间共享数据, 你可以考虑使用Session State. <%@ Page Language="C#" %> 
    <script language="C#" runat="server"> 
    void page_load() 

        Session["name"] = "James"; } 
    </script> <HTML> 
    <body> 
        Hello <%=Session["name"]%>! 
    </body> 
    </HTML>你也可以在另一个页面中访问这个Session["name"]以下网页有更多信息:
    http://www.dotnetcoders.com/web/Articles/ShowArticle.aspx?article=24希望对你有用.- 微软全球技术中心本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款
    (http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)
      

  4.   

    arrRet是多个返回值的数组window.retrunValue=arrRet.join("@")arrRet=showModalDialog().split("@")
      

  5.   

    不是的,我的要求是由父页面提供一个输入值,点击后打开子页面(通过ShowModelDialog),然后子页面通过一定过程(由父页面提供的那个输入值,在树形控件中筛选、构造出树,通过对树形控件的选择,选定一个节点)然后再点击确定按钮,把相关信息返回父页面。具体就是实现这个过程,可是老不行,不知道有没有解决方法??
      

  6.   

    请查找相关帖子,这个问题我有详细的答复,传值给showModalDialog后的页面使用querystring,返回使用 var = showModalDialog(),只能返回一个,但是你可以将几个返回值串起来返回,不要使用session传值,你会发现session经常丢失(具体原因帖子中有解释),另外还有一点,关于一点击节点就弹出一个新的ie窗口这个问题需要处理一下,有两种方式可以解决,1是加入<base target="_parent">,2是使用带框架的htm页面,框架内容是你的aspx页面,但是你要注意ie5。5以下伴本使用1解释有问题,使用2可以。