window.returnValue:模态窗口中向调用窗口返回的值
例如,A打开B ,B关闭时就可以向A返回一个returnvalue ,A怎样获得B返回的值呢?
1 function modalDialogShow(url,width,height){ 2 if(url.indexOf("?")==-1) 3 url=url+"?ffilter=image";//默认只显示图片文件 4 else 5 url=url+"&ffilter=image"; 6 var arrTmp = 7 window.showModalDialog(url,window,"dialogWidth:"+width+"px;dialogHeight:"+height+"px;edge:Raised;center:1;help:0;resizable:1;maximize:1"); 8 //将returnvalue赋值给arrTmp 9 setAssetValue(arrTmp); //将arrTmp 赋值给附件地址框 10 }
showModalDialog()、showModelessDialog()方法使用详解
Javascript有许多内建的方法来产生对话框,如:window.alert(), window.confirm(),window.prompt().等, 然而IE提供更多的方法支持对话框。如:
showModalDialog() (IE 4+ 支持) ,showModelessDialog() (IE 5+ 支持) 。
window.showModalDialog()方法用来创建一个显示HTML内容的模态对话框,由于是对话框,因此它并没有一般用window.open()打开的窗口的所有属性。
window.showModelessDialog()方法用来创建一个显示HTML内容的非模态对话框。
当我们用showModelessDialog()打开窗口时,不必用window.close()去关闭它,当以非模态方式[IE5]打开时, 打开对话框的窗口仍可以进行其他的操作,即对话框不总是最上面的焦点,当打开它的窗口URL改变时,它自动关闭。而模态[IE4]方式的对话框始终有焦点(焦点不可移走,直到它关闭)。模态对话框和打开它的窗口相联系,因此我们打开另外的窗口时,他们的链接关系依然保存,并且隐藏在活动窗口的下面。
使用方法如下:
vReturnValue = window.showModalDialog(sURL [, vArguments] [, sFeatures])
vReturnValue = window.showModelessDialog(sURL [, vArguments] [, sFeatures])
参数说明:
sURL 必选参数,类型:字符串。用来指定对话框要显示的文档的URL。
vArguments 可选参数,类型:变体。用来向对话框传递参数。传递的参数类型不限,包括数组等。对话框通过window.dialogArguments来取得传递进来的参数。
sFeatures 可选参数,类型:字符串。用来描述对话框的外观等信息,可以使用以下的一个或几个,用分号“;”隔开。
window.showModalDialog()方法用来创建一个显示HTML内容的模态对话框,由于是对话框,因此它并没有一般用window.open()打开的窗口的所有属性。
window.showModelessDialog()方法用来创建一个显示HTML内容的非模态对话框。
当我们用showModelessDialog()打开窗口时,不必用window.close()去关闭它,当以非模态方式[IE5]打开时, 打开对话框的窗口仍可以进行其他的操作,即对话框不总是最上面的焦点,当打开它的窗口URL改变时,它自动关闭。而模态[IE4]方式的对话框始终有焦点(焦点不可移走,直到它关闭)。模态对话框和打开它的窗口相联系,因此我们打开另外的窗口时,他们的链接关系依然保存,并且隐藏在活动窗口的下面。
使用方法如下:
vReturnValue = window.showModalDialog(sURL [, vArguments] [, sFeatures])
vReturnValue = window.showModelessDialog(sURL [, vArguments] [, sFeatures])
参数说明:
sURL 必选参数,类型:字符串。用来指定对话框要显示的文档的URL。
vArguments 可选参数,类型:变体。用来向对话框传递参数。传递的参数类型不限,包括数组等。对话框通过window.dialogArguments来取得传递进来的参数。
sFeatures 可选参数,类型:字符串。用来描述对话框的外观等信息,可以使用以下的一个或几个,用分号“;”隔开。
参数名称 | 描述 |
dialogHeight | 对话框高度 |
dialogWidth | 对话框宽度 |
dialogLeft | 距离桌面左的距离 |
dialogTop | 离桌面上的距离 |
center: {yes | no | 1 | 0 } | 窗口是否居中,默认yes,但仍可以指定高度和宽度。 |
help: {yes | no | 1 | 0 } | 是否显示帮助按钮,默认yes。 |
resizable: {yes | no | 1 | 0 } | [IE5+]:是否可被改变大小。默认no。 |
status: {yes | no | 1 | 0 } | 是否显示状态栏。默认为yes[ Modeless]或no[Modal]。 |
scroll:{ yes | no | 1 | 0 | on | off } | 指明对话框是否显示滚动条。默认为yes |
dialogHide:{ yes | no | 1 | 0 | on | off } | 在打印或者打印预览时对话框是否隐藏。默认为no。 |
edge:{ sunken | raised } | 指明对话框的边框样式。默认为raised。 |
unadorned:{ yes | no | 1 | 0 | on | off } | 默认为no |
window.showModalDialog和window.returnValue的应用
<%--fireForm.htm:点击“上传”按钮弹出内部窗口(showModalDialog)--%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>无标题文档</title> <script language="javascript"> function onObjMore(url,name,height,width,formName) { //window.alert(formName.file.type); var feature = "dialogWidth:"+width+"px;dialogHeight:"+height+"px;scroll:yes;status:no;help:no;center:1"; var returnTarget = window.showModalDialog(url, name, feature); if(returnTarget != undefined && returnTarget.length > 1) { //document.location = returnTarget; formName.file.value=returnTarget; } return false; } </script> <link href="css/aljoin.css" rel="stylesheet" type="text/css"> </head> <body> <form name="proForm" method="post" action=""> <table width="400" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="93" height="25" style="white-space:nowrap " nowrap>文件</td> <td width="307" height="25"><input name="file" type="text" id="file"></td> </tr> <tr> <td height="25"> </td> <td height="25"><input type="button" name="Submit" value="上传文件" onClick="onObjMore('upfile.htm','upfile',300,300,proForm)"></td> </tr> </table> </form> </body> </html> <%--upfile.htm:点击”关闭”按钮返回window.returnValue值给opener,代码如下: --%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>无标题文档</title> <script language="javascript"> function exit() { window.returnValue = "images/upload/2004080512.jpg"; window.close(); } </script> </head> <body> <input name="" type="button" value="关闭窗口" onClick="exit()"> </body> </html>