最近公司專案有使用到IE的showModalDialog,所以做一下筆記!!
叫用方式:
1 | function openWindow(url) { |
各項參數請參考MSDN文件:參數設定
我的是寫個function,如要使用時將url傳進來。其中第二個參數window是將這這個視窗傳遞給開啟的showModalDialog,之後方便showModalDialog叫用母視窗的function或是變數。
例如我在母視窗有個alertMe的function
1 | function alertMe() { |
我只要在showModalDialog視窗中使用 window.dialogArguments.alertMe(); ,就可以直接到母視窗的function。
另外showModalDialog無論是postback或是location到別的網址都會開啟新視窗,所以在<head>裡面加上
<head> <base target="_self" > </head>這樣目標就會是showModalDialog自己。
為了解決showModalDialog因為Cache的關係只有第一個會PostBack的問題,請加入以下的code在page_load事件,讓每次開啟modal dialog都會PostBack
1 | if (!Page.IsPostBack) |
或是在Head裡面加上 ```html
1 |
|
母頁面寫以下Javascript
1 | if (window.showModalDialog(url, window, set)) |
showModalDialog回傳值的方式
showModalDialog頁面寫以下Javascript:
1 | function GoReturnValue() { |
母頁面取值方式:
1 | var returnObj = window.showModalDialog(url, window, Feature); |