IE 與 FireFox 的 showModalDialog

來源:互聯網
上載者:User

在網頁程式中,
有時我們會希望使用者按下按鈕後開啟一個保持在原視窗前方的子視窗,
而在IE中,我們可以使用showModalDialog來達成,
文法如下 :


vReturnValue = window.showModalDialog(sURL [, vArguments] [, sFeatures])


範例:


window.showModalDialog("openwin.html","Arguments","dialogHeight: 200px; dialogWidth: 200px; dialogTop: 10px; dialogLeft: 10px; edge: Raised; center: Yes; help: Yes; resizable: Yes; status: Yes;");


但是.在Firefox中卻沒有showModalDialog這東西,
而在FireFox中我們只能使用window.open實現這樣的功能,
window.open的文法如下 :


oNewWindow = window.open( [sURL] [, sName] [, sFeatures] [, bReplace])


只是,在Firefox下,window.open的參數中,sFeature多了一些功能設定,
而在FireFox下要讓開啟的視窗跟IE的showModalDialog一樣的話,
只要在sFeatures中加個modal=yes就可以了,
範例如下:


window.open('openwin.html','newWin','modal=yes,width=200,height=200,resizable=no,scrollbars=no');


提到了子視窗,不得不提的就是子視窗跟母視窗間的互動操作,
因為我想很多人開啟交談視窗應該都是為了將操作完的結果丟回去給母視窗...


如果是用showModalDialog的話,
在子視窗中要存取母視窗的函數的話,
要注意兩個地方,
1.(母視窗中)開啟視窗:


window.showModalDialog("openwin.html",self,'modal=yes,width=775,height=700,resizable=no,scrollbars=no');


在第二個參數(vArguments),改成self.


2.(子視窗中)調用母視窗的函數:


window.dialogArguments.ShowMsg(obj.value);


ShowMsg為母視窗中的函數.


 


而使用window.open的話,
則是要注意一個地方,
1.(子視窗中)調用母視窗的函數:


window.opener.ShowMsg(obj.value);


使用window.opener去接母視窗的對象.


如此一來,只要再透過navigator.appName去判斷瀏覽器為何,
就可以寫一個IE與FireFox相容的函數...


 



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.