首先,來說一下對話方塊
對話方塊在Windows應用程式中使用非常普遍,許多應用程式的設定,與使用者互動需
要通過對話方塊來進行,因此對話方塊是Windows應用程式中最重要的介面元素之一,
是與使用者互動的重要手段。對話方塊是一個特殊的視窗,任何對視窗進行的操作(
如移動、最大化、最小化等)也可以在對話方塊實施。
對話方塊大致可以分為以下兩種。
(1)模態對話方塊:模態對話方塊彈出後,獨佔了系統資源,使用者只有在關閉該對話
框後才可以繼續執行,不能夠在關閉對話方塊之前執行應用程式其他部分的代碼。
模態對話方塊一般要求使用者做出某種選擇。
(2)非模態對話方塊:非模態對話方塊彈出後,程式可以在不關閉該對話方塊的情況下
繼續執行,在轉入到應用程式其他部分的代碼時可以不需要使用者做出響應。非模
態對話方塊一般用來顯示資訊,或者即時地進行一些設定。
模態視窗在傳統程式設計語言中很常見,簡單的說就是,如果是模態的,就是開啟一
個子視窗,如果這個子視窗不關閉,就不能操作它的父視窗,原來程式暫停執行
,直到這個模態視窗關閉後才回到原來程式繼續。
非模態的就是直接顯示出來,然後原來的程式繼續執行下面的語句,而且其他窗
口也呈可用狀態。
模態對話方塊獨佔了使用者的輸入,當一個模態對話方塊開啟時,使用者只能與該對話方塊
進行互動,而其他使用介面物件收不到輸入資訊。應用程式用到的大部分對話方塊
都是模態對話方塊。
通常瀏覽器中windwo.open或超連結彈出的新視窗就是非強制回應視窗,而強制回應視窗是
類似alert那種必須關閉才能響應其他事件的視窗。
明白了對話方塊的模態和非模態,來看下邊
在B/s結構應用程式的開發中,有時我們會希望使用者按下按鈕後開啟一個保持在
原視窗前方的子視窗,
在IE中,我們可以使用
window.showModelessDialog()方法用來建立一個顯示HTML內容的非模態對話方塊。
window.showModalDialog()方法用來建立一個顯示HTML內容的模態對話方塊,由於
是對話方塊,因此它並沒有一般用window.open()開啟的視窗的所有屬性。