用showModalDialog写的简单弹出框传参与反参

vReturnValue = window.showModalDialog(sURL [, vArguments] [,sFeatures])

sURL -- 必选参数,类型:字符串。用来指定对话框要显示的文档的
URL
vArguments -- 可选参数,类型:变体。用来向对话框传递参数。传递的参数类型不限,包括
数组等。对话框通过window.dialogArguments来取得传递进来的参数。
sFeatures -- 可选参数,类型:字符串。用来描述对话框的外观等信息,可以使用以下的一个或几个,用分号“;”隔开。

sFeatures 可选参数有:

dialogHeight:sHeight 可选字符串,指定对话框窗口的修饰,使用与一个或多个值以下分号分隔:
[1]
dialogHeight:sHeight
设置对话框窗口的高度(见备注默认度量单位)。
dialogLeft: sXPos
设置对话框窗口相对于
桌面左上角的左侧位置。
dialogTop:sYPos
设置对话框窗口相对于
桌面左上角的榜首位置。
dialogWidth:sWidth
设置对话框窗口的宽度(见备注默认度量单位)。
center:{ yes | no | 1 | 0 | on | off }
中心指定是否要在
桌面对话窗口。.默认为 yes。
dialogHide:{ yes | no | 1 | 0 | on | off }
指定
对话框窗口是否隐藏在打印或使用
打印预览。此功能只有当一个对话框是从信任的
应用程序打开。默认是no。
edge:{ sunken | raised }
指定对话框窗口边缘风格。 默认是raised 。
resizable:{ yes | no | 1 | 0 | on | off }
指定对话框窗口中是否有固定的尺寸。 默认是no。
scroll:{ yes | no | 1 | 0 | on | off }
指定对话框窗口是否显示滚动条。默认为 yes。
status:{ yes | no | 1 | 0 | on | off }
指定对话框窗口是否显示状态栏。默认为yes不受信任的对话窗口和窗口
信任的对话。
unadorned:{ yes | no | 1 | 0 | on | off }
指定对话框窗口是否显示边框的窗口
浏览器。 此功能只有当一个对话框是从信任的
应用程序打开。默认是no。
minimize:{ yes | no}
指定对话框是否显示最小化按钮,默认不显示
maximize:{ yes | no}
指定对话框是否显示最大化按钮,默认不显示
以上信息来自百度百科。

具体使用如下:

主页:index.html

<html>
<head>
<title> 弹出框小例子 </title>
<script>
function showWinPassArr(){
var arr=['test1','19','famle'];//构造参数-数组传递给子窗口
var str =showModalDialog('children.html',arr,'dialogWidth=280px;dialogHeight=200px;title=测试弹出框');//定义变量str接收返回值。
alert(str[0]+str[1]);//弹出返回值
}
function showWinPassObj(){
var obj={name:'test1',age:19,sex:'famle'};//构造参数-对象传递给子窗口
showModalDialog('children2.html',obj,'dialogWidth=280px;dialogHeight=200px');
}
function showOpenWin(){
window.open("http://www.kao.com/","Window Name",
"menubar=no,location=no,resizable=no,scrollbars=no,status=no");
}
</script>
</head> <body>
<input type="button" value="弹出模态窗口-传递数组参数" onclick="showWinPassArr();"/>
<input type="button" value="弹出模态窗口-传递对象参数" onclick="showWinPassObj();"/>
<input type="button" value="winOpen" onclick="showOpenWin();"/>
</body>
</html>

弹出框子页面children.html

<html>
<head>
<title>接收传递参数为数组</title>
</head>
<script>
var arr = window.dialogArguments;//接收参数
alert("name:"+arr[0]+" age:"+arr[1]+" sex:"+arr[2]);
var rtnarr=['这个是从子窗口返回的参数','1234567'];//构造返参
window.returnValue=rtnarr;//回传参数
</script>
<body>
<center> children.html</center>
</body>
</html>

弹出框子页面children2.html

<html>
<head>
<title>接收传递参数为对象</title>
</head>
<script>
var obj = window.dialogArguments;
alert(obj.age);
</script>
<body>
children2.html
</body>
</html>
上一篇:vue-cli 项目优化之3种方法对比:本地静态库资源(推荐)、cdn、DllPlugin


下一篇:如何解决流程开发中SheetRadioButtonList页面取值问题