真想不到使用 showModalDialog 這個功能的問題還沒有結束...
之前才很高興的發現解決 showModalDialog 在 Postback 時會建立另外一個視窗的方法,沒想到測試的時候遇到的問題完全把這兩天花的功夫給毀了...
Firefox 居然不支援 showModalDialog!
這還真是有夠傷腦筋的,網路上爬文,發現很多人建議在 feature 這個參數裡面加上 modal=yes 這個字串,不過試驗的結果跟很多人的回應一樣。加上這個修飾字其實並沒有真的讓視窗變成 modal 模式,這只是個假象!
鑑於 Firefox 使用者的數量與日俱增,我們做網站的時候又不能不考量這一些使用者,還是得想個辦法解決才行。找了半天,發現了一個還不錯的方法,就是純粹用 DHTML 去模擬 modal dialog window,有人建議我用 AJAX 套件裡面的那個 Modal Dialog,這個方法其實也不錯,只是說... 先前以為很簡單的事情,已經因為產生新視窗的問題浪費了一天,如果又要在把AJAX套件裝進去,我看又有得摸了!
另外一方面,AJAX套件雖然好用,不過我們發現整個套件的規模實在有夠大,光下載他的 client side JavaScript 就超過了 200KB,為了使用這麼一個 Modal Dialog 的功能,然後要花這種成本,從使用者端來看,好像又有點太誇張了。
後來我們用的東西是在 http://www.dynamicdrive.com/dynamicindex8/dhtmlwindow/dhtmlmodal.htm 所找到的,使用的方式跟 window.open 這個 method 類似,裡面也提供了母視窗與子視窗做資料交換的方法。重點是,網頁主要只需 reference 兩個 .js 檔案就好了,大小約莫 20+ KB,這可比 AJAX 套件要感覺經濟、輕巧得多了。
不知道是該 complain Firefox 還是微軟,因為還沒時間去查 showModalDialog 是不是所謂的標準,不過 ... 好像也不重要了,哈!

沒有留言:
張貼留言