网上摘的帖子(比较乱!~~~~~··):
------------------------------------------------
父窗口弹出模态窗口代码:
var a = window.showModalDialog("B.aspx?OID="+ OID,window,"dialogwidth:600px;dialogheight:300px;status:no;scroll:no");
模态窗口代码:
<script language="javascript">
//得到父窗口的引用。
var VarObject = window.dialogArguments;
//刷新父窗口
function ReferParentWin()
{
//可以用VarObject调用父窗口内任何一个元素
//比如:VarObject.document.all["aaa"].value 就是得到父窗体内ID为aaa的文本框的值
if(VarObject != null){
//刷新父窗体.
VarObject.location.reload();
}
}
</script>
var a = window.showModalDialog("B.aspx?OID="+ OID,window,"dialogwidth:600px;dialogheight:300px;status:no;scroll:no");
模态窗口代码:
<script language="javascript">
//得到父窗口的引用。
var VarObject = window.dialogArguments;
//刷新父窗口
function ReferParentWin()
{
//可以用VarObject调用父窗口内任何一个元素
//比如:VarObject.document.all["aaa"].value 就是得到父窗体内ID为aaa的文本框的值
if(VarObject != null){
//刷新父窗体.
VarObject.location.reload();
}
}
</script>
--------------------------------------------------------------------------
window.showModalDialog("test.htm",window);
----------------------对话框窗口中-------
var parentWin = window.dialogArguments;
parentWin.functionName();
----------------------对话框窗口中-------
var parentWin = window.dialogArguments;
parentWin.functionName();
-------------------------------------------------------------------
要调用父窗体函数:
VarObject.父窗体函数名称
VarObject.父窗体函数名称
这里要注意的是,如果你的子页面在打开以后刷新过一次,用var VarObject = window.dialogArguments;就不能得到父窗体引用了...
这个问题我一直没解决..
这个问题我一直没解决..
----------------------------------------------------------------------
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元素的值"
(作者语:本来想用一问一答形式来写的,但是我想不出这个怎么问,所以只好这样了。)
这个东西比较麻烦,我改了好几次了不是没办法说明白(语文水平越来越差了),只好用个例子说明了。
例子:
现在需要在一个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元素的值"
转载于:https://blog.51cto.com/fluagen/94414