黑马程序员技术交流社区

标题: showModalDialog和showModelessDialog数据传递技巧。 [打印本页]

作者: 袁雅墨    时间: 2012-9-14 14:31
标题: showModalDialog和showModelessDialog数据传递技巧。
举例说明:

现在需要在一个showModalDialog(或showModelessDialog)里读取或设置一个变量var_name
一般的传递方式:

window.showModalDialog("filename.htm",var_name)
//传递var_name变量

在showModalDialog(或showModelessDialog)读取和设置时:

alert(window.dialogArguments)//读取var_name变量
window.dialogArguments="oyiboy"//设置var_name变量

这种方式是可以满足的,但是当你想在操作var_name同时再操作第二个变理var_id时呢?就无法再进行操作了。这就是这种传递方式的局限性。
以下是我建议使用的传递方式:

window.showModalDialog("filename.htm",window)
//不管要操作什么变量,只直传递主窗口的window对象

在showModalDialog(或showModelessDialog)读取和设置时:

alert(window.dialogArguments.var_name)//读取var_name变量
window.dialogArguments.var_name="oyiboy"//设置var_name变量

同时我也可以操作var_id变量

alert(window.dialogArguments.var_id)//读取var_id变量
window.dialogArguments.var_id="001"//设置var_id变量

同样还可以对主窗口的任何对象进行操作,如form对象里的元素。

window.dialogArguments.form1.index1.value="这是在设置index1元素的值"

作者: 许庭洲    时间: 2012-9-16 12:28
好资料,值得学习ing!
作者: 张青江    时间: 2012-9-16 12:30
mark一下,凑个字数




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2