ShowModalDialog() 的第二个参数传递一个对象后,如何调用它的方法?
在主页面上放一个空的列表, 希望能够通过对话框选择,然后动态添加.
<Select size=6 id="select1"> </Select>
<Script language="javascript">
window.showModalDialog("dialog.htm",select1);
</cript>
//dialog.htm
...
op = document.createElement("Option");
op.text ="xxx";
op.value = "yyy";
window.dialogArguments.add(op);
...
运行显示 window.dialogArguments.add(op)这行 参数无效.
请问要怎么样才能调用 add方法? 是不是有什么类型转换?
问题点数:100、回复次数:6Top
1 楼ice_berg16(寻梦的稻草人)回复于 2005-04-23 20:11:53 得分 100
这么做是不行的,
你create出来的op不是主窗口的元素,添加是不对的。
<Select size=6 id="select1"> </Select>
<Script language="javascript">
window.showModalDialog("dialog.htm",document);
</cript>
//dialog.htm
...
pd = window.dialogArguments;
op = pd.createElement("Option");
op.text ="xxx";
op.value = "yyy";
pd.getElementById("select1").add(op);
Top
2 楼wyhkgd(自由天神)回复于 2005-04-23 20:49:01 得分 0
test.htm
***********************************
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>测试页</title>
</head>
<body>
<form name=form1>
<input name="t1">
<input value="确定" type=button onclick="return check()">
</form>
<script language="javascript">
<!--
function check()
{
var t1=form1.t1.value;
k=showModalDialog("dialog.htm",t1,"dialogWidth:400px;status:no;dialogHeight:300px");
//把输入的值传过去
alert("你在showModalDialog窗口中选择的值是:"+k);//k为接收传回来的值
}
//-->
</script></body>
</html>
dialog.htm
******************************************
<select name=s2 onchange="c(this.value)"></select>
<script language>
var k=window.dialogArguments; //中就是接收showModalDialog的第二个参数,可是是变量,对象即数组等
s2.add(new Option("text1","text1"));
s2.add(new Option("text2","text2"));
s2.add(new Option(k,k));
function c(value){
window.returnValue=value;
window.close();
}
</script>
Top
3 楼sfply(随风飘零叶)回复于 2005-04-23 23:30:11 得分 0
你必须以主窗口方式创建OP
稻草人正解,开始偶也是百思不得其解,后来才想明白是这个问题Top
4 楼kfcn()回复于 2005-04-24 02:50:49 得分 0
不明白Top
5 楼wjcking()回复于 2005-04-24 11:41:48 得分 0
upTop
6 楼wyhkgd(自由天神)回复于 2005-04-24 13:18:51 得分 0
<html>
<body>
<script language="javascript">
<!--
var s1=document.createElement("select");
s1.add(new Option("aaaaaaaa","a"));
s1.add(new Option("bbbbbbbb","b"));
document.body.appendChild(s1);
//-->
</script>
</body>
</html>Top




