办法1:可以拼成xml格式的字符串<ret><a>aaa</a><b>bbb</b></ret>
办法2:组成数组new Array("aa","bb","ccc")
办法3:做成自定义对象?
o = new Object()
o.aa="aaaa"
o.bb="bbbb"
办法2:组成数组new Array("aa","bb","ccc")
办法3:做成自定义对象?
o = new Object()
o.aa="aaaa"
o.bb="bbbb"
showModalDialog("url",window)这样打开
参见
http://www.csdn.net/Develop/read_article.asp?id=15113
两个文件
3.htm<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
<script language=javascript>
function showfaceWindow()
{
showModalDialog('4.htm',window,'dialogWidth:470px;dialogHeight:300px;scroll:no;center:yes;help:no;resizable:no;status:no');
}
</script>
<form name=form1>
<table>
<tr>
<td><img name=faceImage src="face01.gif"></td>
<td>
<input name=faceImageName type=text value="face01.gif"></td><td><input
name=showface type=button value="选择头像"
onclick="showfaceWindow()"></td>
</tr>
</table>
</form><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<4.htm
<script language=javascript>
function showImageName(e)
{
var srcName=e.src;
var imageName=srcName.split("/");
alert(imageName[imageName.length-1]);
window.dialogArguments.form1.faceImage.src = e.src;
window.dialogArguments.form1.faceImageName.value =
imageName[imageName.length-1];
window.close();
}
</script>
<table border=1>
<tr><td>
<img src=face01.gif onclick=showImageName(this)>
</td>
<td>
<img src=face02.gif onclick=showImageName(this)>
</td>
<td>
<img src=face03.gif onclick=showImageName(this)>
</td>
</tr>
<tr><td>
<img src=face04.gif onclick=showImageName(this)>
</td>
<td>
<img src=face05.gif onclick=showImageName(this)>
</td>
<td>
<img src=face06.gif onclick=showImageName(this)>
</td>
</tr>
<table>
window.dialogArguments.form1 undefined
我用了form1为什么不可以
window.dialogArguments.form1 为空或不是对象
还没碰到过这种情况。
怀疑可能是在数组的元素里有dialog里的某些对象,当窗口关闭后有的对象被销毁了
“把多个参数组织成一个字符串,用逗号分号等隔开”
这样做感觉不大好
说详细一点
-------------------
“数组会访问不到”的情况不是经常出现,而是偶尔出现。而且重复操作,错误结果也不一定能复现。
我的分析结果是:
在模式对话框关闭的时候,对象要释放掉。但原来对象占有的内存空间可能会被别的变量占走,也可能暂时不被占用(内存很大的时候)。而对话框回传的只是一个地址,按照这个地址去找数组元素,必然有时找不到,有时找到。
简单数据类型如字符串和浮点数是按值传送,就不会出现上述弊端了。to w_lion(豆腐)
------------
var s="12,34,45";
var arr=s.split(",");
alert(arr[1]); 得到34
-----
如果js用的是java的概念,数组还在用,应该不会因内存回收而销毁。
既然你确实碰到过“偶尔出现”的“数组会访问不到”,
那我以后也去留意一下这种情况。
---因为平时都用数组来传的,所有比较关心这个问题。