你是要用 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>
主页面
<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>
<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>
我是想从子页面传参数给主页面,我用的是c#,不是JSP.而且我写的代码同大家的一样,就是不能传递参数,我想问题可能出在.aspx的html上,不知html上还做哪些修改?
此类事情赶快help!!!!!!
var result = window.showModalDialog("...
if(result != null)
alert(result);
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就是收不到子页面传来的参数
if( mmm != null)
Page.RegisterStartupScript("alert", "<script language=JavaScript>alert('没收到!!! ');</script>");为
if( mmm == null)
Page.RegisterStartupScript("alert", "<script language=JavaScript>alert('没收到!!! ');</script>");
Response.Write( @"<script language=JavaScript> mmm=window.showModalDialog('childform.aspx');alert(mmm)</script>");
Response.Write( @"<script language=JavaScript>" + mmm + "=window.showModalDialog('childform.aspx');</script>");
Response.Write(@"<script language=JavaScript>window.returnValue = 'revalue' ;</script>");如果revalue是测试的字符串,应该返回'revalue'就是对的
如果revalue是变量,请将引号去掉
即:
Response.Write(@"<script language=JavaScript>window.returnValue = " + revalue + " ;</script>");
你不用那么写,vArguments参数传值传到子窗体是引用类型(可能不这么叫,但效果是这样),在showModalDialog方法完成后(即子窗口关闭后),你可以直接操作被当作vArguments参数传过去的值
就好比,我给你的例子中
var myObject = new Object();
myObject.firstName = aForm.oFirstName.value;
myObject.lastName = aForm.oLastName.value;
这个对象,如果,firstName在子窗口中被修改了的话
在返回父窗口后,得到的是修改后的值
这样不是比你用ShowModalDialog得到的返回值要灵活的多
mmm 和 "+ mmm+" 有什麽不同?
我才学编程,有些东西不懂,望指教!!谢谢!!!