Hi all, 對話方塊在Windows應用程式中使用非常普遍,許多應用程式的設定,與使用者互動需要通過對話方塊來進行,因此對話方塊是Windows應用程式中最重要的介面元素之一,是與使用者互動的重要手段。對話方塊是一個特殊的視窗,任何對視窗進行的操作(如移動、最大化、最小化等)也可以在對話方塊實施。
對話方塊大致可以分為以下兩種。
(1)模態對話方塊:模態對話方塊彈出後,獨佔了系統資源,使用者只有在關閉該對話方塊後才可以繼續執行,不能夠在關閉對話方塊之前執行應用程式其他部分的代碼。 模態對話方塊一般要求使用者做出某種選擇。
(2)非模態對話方塊:非模態對話方塊彈出後,程式可以在不關閉該對話方塊的情況下繼續執行,在轉入到應用程式其他部分的代碼時可以不需要使用者做出響應。非模 態對話方塊一般用來顯示資訊,或者即時地進行一些設定。
模態視窗在傳統程式設計語言中很常見,簡單的說就是,如果是模態的,就是開啟一個子視窗,如果這個子視窗不關閉,就不能操作它的父視窗,原來程式暫停執行 ,直到這個模態視窗關閉後才回到原來程式繼續。 非模態的就是直接顯示出來,然後原來的程式繼續執行下面的語句,而且其他視窗也呈可用狀態。
比較常見的是window.open和window.showModelDialog方法,分別代表非強制回應對話方塊和強制回應對話方塊。然而有時候會遇到這樣的情況:客戶考慮安全隱患,不允許在程式中使用window.showModelDialog(強制回應對話方塊)彈出。這樣的話我們就需要自己用DIV做一個類似的強制回應對話方塊的效果:下面是我自己寫的一個簡單的應用。 (請點擊按鈕看看有什麼效果)
用DIV類比的對話方塊
| 這裡就對話方塊中的內容,且支援拖動功能,歡迎測試! |
|
|
鑒於朋友們的意見,現在粘跌代碼如下:
<style>
div#mbDIV
{
position: absolute;
top: 0px;
left: 0px;
width:expression(document.body.scrollWidth+"px");
height:expression(document.body.scrollHeight+"px");
background-color: #AAAAAA;
z-index: 10;
filter: alpha(opacity=80);opacity:0.8;
}
div#loginDIV
{
position: absolute;
width: 500px;
height: 180px;
background-color:white;
z-index: 20;
}
div#loginTopDIV
{
width: 100%;
height: 22px;
text-align:center;
background-color: blue;
cursor: move;
}
</style>
<script>
function btnAnswer()
{
if(window.confirm("能告訴我你的名字嗎?謝謝!"))
alert("歡迎你");
else
{
alert("你哇假打哈!")
}
closeDIV();
}
</script><script type="text/javascript" src="http://files.cnblogs.com/Charles2008/DIVDialog.js" defer="defer"></script>
<div id="mbDIV" style="display: none;"></div>
<div id="loginDIV" style="display: none; left: 300px; top: 200px">
<div id="loginTopDIV">用DIV類比的對話方塊</div>
<table cellspacing="0" cellpadding="0" width="100%" border="0">
<tr>
<td align="center" colspan="2">這裡就對話方塊中的內容,且支援拖動功能,歡迎測試! </td>
</tr>
<tr>
<td align="center"><input onclick="btnAnswer();" type="button" value="回答問題"></td>
<td align="center"><input onclick="closeDIV()" type="button" value="關閉"> </td>
</tr>
</table>
</div>
<div align="center"><input onclick="openDIV()" type="button" value="測試DIV類比showModalDialog對話方塊"> </div>
希望朋友們提出寶貴的意見。謝謝。