模态對話框(Modal
Dialog),是一種會block順序執行程式的視窗,比如C#裡的MessageBox.Show(this,...),JavaScript裡的alert(...)、confirm(...)等,是我們最常見的模态對話框。不關閉這種對話框程式的目前線程就被一直挂起了,這種視窗的特性最适合用來做條件分支的判斷提示和Wizard視窗。
在IE裡面,我們可以通過window對象的showModalDialog方法十分友善的開啟一個模态對話框。可是這個從IE4.0就開始支援的feature,居然還有一堆一堆的問題:(
。到這裡我還以為找到模态對話框的bug了,回家後決定把這個bug再研究一下,結果卻很順利的從模态視窗裡調用XMLHTTP對象獲得了伺服器上的資料
。真是郁悶!!!
明天再找個機器來試試,看看到底還有沒有問題。
如果你對JS也感興趣,不妨也來試驗一下,看看到底是我機器環境本身的原因,還是這是一個不确定的bug。
測試代碼如下:
<html>
<head>
<title>Caller</title>
</head>
<body>
<button onclick="OpenDialog()">Open Dialog
</button>
<script language="javascript">
function OpenDialog()
{
var dlg = window.showModalDialog('Callee.htm');
}
</script>
</body>
</html>
存為:Caller.htm
<title>Callee</title>
<table border="0" width="100%" height="100%">
<tr>
<td align="center" valign="middle">
<button onclick="GetData()" ID="Button1">Open Dialog
</button></td>
</tr>
</table>
function GetData()
var url = 'http://www.google.com';
__XmlHttpPool__.GetRemoteData(url, alert);
</script>
存為:Callee.htm
歡迎回複您的實驗結果,同時也歡迎讨論模态視窗的其它問題及解決方法。
本文轉自部落格園鳥食軒的部落格,原文連結:http://www.cnblogs.com/birdshome/,如需轉載請自行聯系原部落客。