window.showModalDialog操作父窗口

Firefox 3.0 已经支持window.showModalDialog了,平时很多地方用模态对话框还是很方便的,

今天写了一下在调用窗体的时候,传一个CallBack过去,让子窗口可以调用父窗口的方法。

父窗口:

<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--
function ShowDialog()
{
    
var param = "dialogWidth:400px;dialogHeight:300px;scroll:no;status:no;resizable:no";
    
return window.showModalDialog("pop.html", GetResult, param);
}

function GetResult(ret)
{
    alert(ret);
    document.getElementById(
"tbTest").value = ret;
}
//-->
</SCRIPT>
<input type="button" value="Pop" onclick="ShowDialog();" />
<input type="text" id="tbTest" />
</BODY>
</HTML>

子窗口:

<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--
function SetValue()
{
    
var callBack = window.dialogArguments;
    
if (callBack != undefined && callBack != null)
    {
        callBack(Math.random());
    }
}
//-->
</SCRIPT>
<input type="button" value="SetValue" onclick="SetValue();" />
</BODY>
</HTML>


子窗口可以调用父窗口的alert,以及js赋值等,当然就可以ajax了。

不过貌似不能让父窗口提交。这点倒是有点麻烦。还好我现在是用ajax在处理父窗口的数据提交。

感觉还有点用。

感谢L.S的鼓励,我都不知我去看写过blog,那今年就从最近开始多写一些吧。

原文地址:https://www.cnblogs.com/nonlyli/p/1337005.html