window.dialogArguments 使用问题

来源:互联网 发布:集体智慧编程 高清 编辑:程序博客网 时间:2024/05/20 05:45

window.dialogArguments 是什么  

window.dialogArguments 即为父窗口window对象的引用。
父类窗口代码(弹出模式对话框):
window.showModalDialog( url, window ); 

例如:
//子窗体关闭的时候刷新父窗体
window.dialogArguments.location.href=window.dialogArguments.location.href;
window.focus();
window.close();
//子窗口调用父窗口里的函数:
window.dialogArguments.函数名();

//直接调用父窗口控件的事件方法:
   var docum = dialogArguments; 
   docum.getElementById("Button1").click();//调用父窗口的按钮点击事件
详解如下:

弹出子窗口
window.showModalDialog( url, window ); 
然后在弹出的子窗口中: 
window.dialogArguments 即为父窗口window对象的引用。

例如:

子窗口是用window.showModalDialog()弹出的模式对话框.
父窗口中弹出时这么写:window.showModalDialog('子窗口.aspx',window,'....');
注意第二个参数用window,这样你就把父窗口对象当做参数传递给了子窗口.
然后在子窗口中就可以通过window.dialogArguments来引用父窗口对象了.

举个例子,你可以在子窗体关闭的时候刷新父窗体,可以这么写:
window.dialogArguments.location.href=window.dialogArguments.location.href;
window.focus();
window.close();
你也可以调用主窗口里的函数:
window.dialogArguments.函数名();


再附上一个msdn的例子:
<HTML><HEAD><TITLE>showModelessDialogEX.htm</TITLE><SCRIPT>var sUserName="";function fnCallDialog(){showModelessDialog("myDialog.htm",window,"status:false;dialogWidth:300px;dialogHeight:300px");}function fnUpdate(){oName.innerText = sUserName;}</SCRIPT></HEAD><BODY><P>Enter your first name: <SPAN ID="oName" STYLE="color:red;font-size:24">Joan</SPAN></P><INPUT TYPE="button" VALUE="Display Modeless Dialog" onclick="fnCallDialog()"></BODY></HTML>

Here is the code for "myDialog.htm".
<HTML>
<HEAD>
<TITLE>myDialog.htm</TITLE>
<SCRIPT>
function fnGetInfo() {
var sData = dialogArguments;
sData.sUserName = oEnterName.value;
sData.fnUpdate();
}
function fnCancel() {
var sData = dialogArguments;
sData.sUserName = "Joan";
sData.fnUpdate();
}
</SCRIPT>
</HEAD>
<BODY>
<LABEL FOR="oEnterName" ACCESSKEY="f">
Enter your <SPAN STYLE="text-decoration:underline">F</SPAN>irst Name</LABEL>
<INPUT ID=oEnterName><BR><BR>
<INPUT VALUE="Apply" TYPE=button onclick="fnGetInfo();">
<INPUT VALUE="Ok" TYPE=button onclick="fnGetInfo();window.close();">
<INPUT VALUE="Cancel" TYPE=button onclick="fnCancel();window.close();">
</BODY>
</HTML>

dialogArguments只能在mode和modeless窗口中才能使用,可以传递传递任意类型的值,
上例就是传得是window. 在以前的项目中,页面之间传递参数经常使用的是url后接参数的形式

转自: http://blog.sina.com.cn/s/blog_7fff68b90101cc97.html


0 0