js中 ShowModalDialog與window.open的區別

ShowModalDialog函數、改變模態窗口大小

ShowModalDialog函數的功能:
打開一個子窗口,並且可與父窗口相互傳遞數據,它與window.open的最大區別就在於由ShowModalDialog打開子窗口後,父窗口將不能操作。
使用方法:
vReturnValue = window.showModalDialog(sURL [, vArguments] [, sFeatures])
參數說明:
sURL
必選參數,類型:字符串。用來指定對話框要顯示的文檔的URL。
vArguments
可選參數,類型:變體。用來向對話框傳遞參數。傳遞的參數類型不限,包括數組等。對話框通過window.dialogArguments來取得傳遞進來的參數。
sFeatures
可選參數,類型:字符串。用來描述對話框的外觀等信息,可以使用以下的一個或幾個,用分號“; ”隔開。
dialogHeight 對話框高度,不小於100px,IE4中dialogHeight 和 dialogWidth 默認的單位是em,而IE5中是px,爲方便其見,在定義modal方式的對話框時,用px做單位。
   dialogWidth: 對話框寬度。
   dialogLeft: 距離桌面左的距離。
   dialogTop: 離桌面上的距離。
   center: {yes | no | 1 | 0 } :窗口是否居中,默認yes,但仍可以指定高度和寬度。
   help: {yes | no | 1 | 0 } :是否顯示幫助按鈕,默認yes。
   resizable: {yes | no | 1 | 0 } [IE5+]:是否可被改變大小。默認no。
   status: {yes | no | 1 | 0 } [IE5+]:是否顯示狀態欄。默認爲yes[ Modeless]或no [Modal]。
scroll:{ yes | no | 1 | 0 | on | off } :指明對話框是否顯示滾動條。默認爲yes。
參數傳遞方法:
父窗口向子窗口傳遞參數採用ShowModalDialog的第2個參數即可,父窗口要獲取子窗口傳回的參數則可通過ShowModalDialog函數的返回值獲取。
子窗口獲取父窗口參數的方法爲採用子窗口window對象dialogArguments屬性獲取,例如:
var a=window.dialogArguments;
子窗口向父窗口返回參數採用window.returnValue屬性,如:
window.returnValue=1;
window.close();



改變模態窗口大小

1.html

< HTML>
< HEAD>
< TITLE> 改變對話框的大小< /TITLE>
< /HEAD>
< script>
function showdialog(){
window.showModalDialog(" 2.html" ," " ,' edge: Raised; center: Yes; help: Yes; resizable: Yes; status: No; dialogHeight:200px; dialogWidth:300px' );
}
< /script>
< BODY>
< input type=button value=" showdialog" οnclick=" showdialog(); " >
< /BODY>
< /HTML>


2.< HTML>
< HEAD>
< TITLE> 改變對話框的大小< /TITLE>
< /HEAD>

< BODY οnlοad=Resize_dialog(1000,1000,1000,1000)>
< SCRIPT LANGUAGE=" JavaScript" >
function Resize_dialog(t,l,w,h) {

window.dialogTop = t+" px" ;
window.dialogLeft = l+" px" ;
window.dialogHeight = h+" px" ;
window.dialogWidth = w+" px" ;
}

< /SCRIPT>
< /BODY>
< /HTML>


window.open是打開新窗口

window.showModalDialog(URL,dialogArgments.features) 打開一個新窗口
URL爲要開啓的網頁。
dialogArgments爲設定好傳遞給新視窗網頁的參數,可以爲任意數據類型。
feature 與open()的類似,都是格式方面的設定。調用格式爲featureName1:featureValue1:(分號)featureName2:featureValue2:
certer , dialogHeight, dialogLeft,dialogTop,dialogWidth,help(是否顯示help按鈕,下同),status,resizeable
值=1爲yes,0爲no.

我認爲最重要的是dialogArgments,可以傳遞值到新的窗口。
第二重要就是 它的返回值 window.returnValue.可以在showModalDialog開啓的窗口關閉後前,回傳一個任意類型的值


showModalDialog() 彈出一個對話框,對話框是依附於打開它的那個窗口的;window.open() 是開一個新窗口,和打開它的那個窗口是獨立的

showModalDialog() 必須關閉才能操作打開它的那個窗口;而 window.open() 打開的窗口不必關閉也可以操作打開它的那個窗口

二者控制打開它的窗口方法也不一樣,一個使用 dialogArguments,後者使用 opener
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章