在傳統(tǒng)的WINDOWS EXE程序中,模態(tài)對(duì)話(huà)框經(jīng)常出現(xiàn)。例如,寫(xiě)字板程序(WORDPAD.EXE)中的“查看/選項(xiàng)(O)...”菜單被點(diǎn)中后,跳出“選項(xiàng)”對(duì)話(huà)框,用戶(hù)一定要響應(yīng)該對(duì)話(huà)框,如果該對(duì)話(huà)框不關(guān)閉,是無(wú)法回到主窗口的。這經(jīng)常被應(yīng)用于要求用戶(hù)輸入多個(gè)參數(shù)的場(chǎng)合。我們?cè)跒g覽器中也可以簡(jiǎn)單地實(shí)現(xiàn)該功能。 ---- 在IE瀏覽器中,要求用戶(hù)輸入可以使用VBScript的INPUTBOX函數(shù)、或者J Script的window.prompt方法,但是界面都比較單調(diào),并且只能傳遞一個(gè)參數(shù),而用DHTML來(lái)實(shí)現(xiàn)就靈活多了。 ---- 1. 基本語(yǔ)法 ---- window對(duì)象有一個(gè)方法稱(chēng)為showModalDialog,我們可以在頁(yè)面按鈕的onclick中寫(xiě)如下代碼: < BUTTON onclick="window.showModalDialog ('dialog.htm')" >Search< /BUTTON > ---- 系統(tǒng)會(huì)在新窗口中打開(kāi)dialog.htm頁(yè)面,并且等待用戶(hù)響應(yīng),如果用戶(hù)不響應(yīng)該頁(yè)面,那么主頁(yè)面將得不到光標(biāo)。 ---- 在dialog.htm中設(shè)置window對(duì)象的returnValue屬性,就可以讓主頁(yè)面得到返回值。例如,在頁(yè)面的確定按鈕的onclick中寫(xiě): window.returnValue = window. document.all.iptPeopleID.value ---- 將輸入框iptPeopleID的值賦給window對(duì)象的returnValue屬性。在主頁(yè)面中就可以得到這個(gè)值: var str = showModalDialog("dialog1.htm") ---- 2. 傳遞初始化值 ---- 如果要向模態(tài)頁(yè)面中傳遞初始化值,可以在主頁(yè)面中用如下語(yǔ)句: var cSearchValue=showModalDialog ('dialog.htm', 'ABC') 在dialog.htm中使用window.dialogArguments 屬性可以得到'ABC'。例如: < SCRIPT FOR=window EVENT=onload LANGUAGE="JScript" > if (window.dialogArguments != null) window.document.all.iptPeopleID.value = window.dialogArguments; < /SCRIPT > ---- 3. 傳遞多個(gè)數(shù)值 ---- 如果要向模態(tài)頁(yè)面中傳遞多個(gè)參數(shù),可以先在主頁(yè)面中定義一個(gè)對(duì)象, function myDialog() { var str1; var str2; } ---- 顯示模態(tài)頁(yè)面之前初始化該對(duì)象,然后調(diào)用showModalDialog方法。 function WelcomeYou(iniStr1,iniStr2) { myDialog.str1 = iniStr1; myDialog.str2 =iniStr2 ; if (showModalDialog("dialog2.htm", myDialog) ==false) //將對(duì)象傳入 ...... ---- 在模態(tài)頁(yè)面中,可以用這樣的代碼 window.document.all.iptID.value= window.dialogArguments.str1 來(lái)引用數(shù)值,或者用這樣的代碼對(duì)之賦值 window.dialogArguments.str1 = window.document.all.iptID.value ---- 完整例程如下: ---- 對(duì)于只傳遞一個(gè)參數(shù)的情況,見(jiàn):Main1.htm和dialog1.htm。 ---- 對(duì)于傳遞多個(gè)參數(shù)的情況,見(jiàn):Main2.htm和dialog2.htm。 父窗體: dim xxx '返回值 dim yyy '傳到子窗體的參數(shù) var xxx = ShowModalDialog('xxx.asp','yyy','dialogWidth:100px;DialogHeight=290px;status:no') 子窗體: dim yyy '從父窗體傳來(lái)的參數(shù) dim xxx '傳回父窗體的參數(shù) yyy = window.dialogArguments xxx = window.returnValue 本文來(lái)自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/liang4571231/archive/2009/04/29/4135316.aspx