你是要用 vArguments参数传值吗?给你个例子
主页面
<HTML>
<HEAD>
<SCRIPT>
function fnLaunch()
{
    var aForm;
    aForm = oForm.elements;
    var myObject = new Object();
    myObject.firstName = aForm.oFirstName.value;
    myObject.lastName = aForm.oLastName.value;
// The object "myObject" is sent to the modal window.
    window.showModalDialog("modalDialogSource.htm", myObject, "dialogHeight:300px; dialogLeft:200px;"); 
}
</SCRIPT>
</HEAD>
<BODY>
<BUTTON onclick="fnLaunch();" >Launch The Window</BUTTON>
<FORM ID= "oForm">
First Name:
<INPUT TYPE="text" NAME="oFirstName" VALUE="Jane">
<BR>
Last Name:
<INPUT TYPE="text" NAME="oLastName" VALUE="Smith">
</FORM>
</BODY>
</HTML>

解决方案 »

  1.   

    子页面<HTML>
    <HEAD>
    <SCRIPT>
    var oMyObject = window.dialogArguments;
    var sFirstName = oMyObject.firstName;
    var sLastName = oMyObject.lastName;
    </SCRIPT>
    <title>Untitled</title>
    </head>
    <BODY STYLE="font-family: arial; font-size: 14pt; color: Snow; 
    background-color: RosyBrown;">First Name:
    <SPAN STYLE="color:00ff7f">
    <SCRIPT>
    document.write(sFirstName);
    </SCRIPT>
    </SPAN>
    <BR>
    Last Name:
    <SPAN STYLE="color:00ff7f">
    <SCRIPT>
    document.write(sLastName);
    </SCRIPT>
    </SPAN>
    </BODY>
    </HTML>
      

  2.   

    楼上:你好!
    我是想从子页面传参数给主页面,我用的是c#,不是JSP.而且我写的代码同大家的一样,就是不能传递参数,我想问题可能出在.aspx的html上,不知html上还做哪些修改?
      

  3.   

    window.returnValue = 要传递的参数;然后回到主页面中将其打印出来看看
      

  4.   

    jonsonzxw(.net从入门到精通) :我就是这样做的,但是很奇怪,就是得不到参数值。我也不知道究竟问提出在哪?哪位遇到过
    此类事情赶快help!!!!!!
      

  5.   

    在主页面
    var result = window.showModalDialog("...
    if(result != null)
        alert(result);
      

  6.   

    不知你从子页面能否通过window.dialogArguments取到来自主页面的值不?这种问题应该不是很复杂,理清你的思路,或理顺一下程序代码,可能是哪搞乱了,试试先,如不行,发一段代码上来看看,包括两个页面的传值部分,我帮你看看
      

  7.   

    主页面代码如下:
    string  mmm = null;
    Response.Write( @"<script language=JavaScript> mmm=window.showModalDialog('childform.aspx');</script>");if( mmm != null)
    Page.RegisterStartupScript("alert", "<script language=JavaScript>alert('没收到!!! ');</script>");
    else
    {
    Page.RegisterStartupScript("alert", "<script language=JavaScript>alert('"+ mmm +" ');</script>");
    Label2.Text = mmm;
    }子页面代码如下:
    Response.Write(@"<script language=JavaScript>window.returnValue = 'revalue' ;</script>");Response.Write(@"<script language=JavaScript>window.close();</script>");mmm就是收不到子页面传来的参数
      

  8.   

    补充:
    if( mmm != null)
    Page.RegisterStartupScript("alert", "<script language=JavaScript>alert('没收到!!! ');</script>");为
    if( mmm == null)
    Page.RegisterStartupScript("alert", "<script language=JavaScript>alert('没收到!!! ');</script>");
      

  9.   

    试试先!
    Response.Write( @"<script language=JavaScript> mmm=window.showModalDialog('childform.aspx');alert(mmm)</script>");
      

  10.   

    要是按你那样写的话,我想应该是这样的:
    Response.Write( @"<script language=JavaScript>" + mmm + "=window.showModalDialog('childform.aspx');</script>");
      

  11.   

    但是到if判断语句时,mmm值又变成null了。什麽原因呢?
      

  12.   

    注意子页面中的revalue
    Response.Write(@"<script language=JavaScript>window.returnValue = 'revalue' ;</script>");如果revalue是测试的字符串,应该返回'revalue'就是对的
    如果revalue是变量,请将引号去掉
    即:
    Response.Write(@"<script language=JavaScript>window.returnValue = " + revalue + " ;</script>");
      

  13.   

    To nbvcxz() :
      你不用那么写,vArguments参数传值传到子窗体是引用类型(可能不这么叫,但效果是这样),在showModalDialog方法完成后(即子窗口关闭后),你可以直接操作被当作vArguments参数传过去的值
    就好比,我给你的例子中
    var myObject = new Object();
        myObject.firstName = aForm.oFirstName.value;
        myObject.lastName = aForm.oLastName.value;
    这个对象,如果,firstName在子窗口中被修改了的话
    在返回父窗口后,得到的是修改后的值
    这样不是比你用ShowModalDialog得到的返回值要灵活的多
      

  14.   

    Response.Write( @"<script language=JavaScript>" + mmm + "=window.showModalDialog('childform.aspx');</script>");按这样改就对了
      

  15.   

    但为什麽当执行下一语句if时,mmm又变回初始值了
      

  16.   

    在请教一个问题:
    mmm 和 "+ mmm+" 有什麽不同?
    我才学编程,有些东西不懂,望指教!!谢谢!!!
      

  17.   

    mmm是客户端变量,而+mmm+是服务器变量,你的if里需要服务器变量才行,所以要将其移出来