IE的愚蠢, 真是夠了!!

最近公司有新的專案需求, 為了讓使用者有更便利的輸入方式,
因此, 我在網頁上大量的採用了 AJAX 技術,
原因有二 :
1. AJAX 可以讓你的系統流程變的更流暢 :
   舉例而言, 當有位使用者希望建立一項新的物件, 但是, 這物件必須被歸類在 某個群組底下!!
   傳統的做法, 如果這位使用者剛好建立一個物件時才發現, 它所屬的群組尚未建立,
   這時候就必須先離開已經編輯到一半的物件, 然後回去先建立 群組, 然後再次從頭建立這個該死的物件!!
   如果這時候有了 AJAX , 那情況就改觀了, 使用者可以方便快速的就在這個網頁中, 立即為缺少的 群組先建立,
   當然這些動作也不用離開正在編輯的網頁, 因此也沒有重新輸入的問題!!…
 
2. AJAX 可以使得 整個操作簡化:
   上述的例子, 使用者可以隨意愛先建立群組就先建立群組, 喜歡先建立物件, 到時才建立群組那也無妨,
   這使得整個網頁介面有了更多的彈性, 與親合力!!
 
但是, 很抱歉, 微軟似乎不是這麼想的, 因為, 我確實遇到了 IE 6.0 or 7.0 對於 Javascript 的支援度不足的窘境….
狀況是發生在 我需要利用 Javascript 當符合某個條件的時候, 就呈現一段 "內嵌的HTML" ( 我後來才知道, 這叫做 innerHTML )
問題是, FireFox 不論怎麼操作都可以, 偏偏 IE 就是一定要 <Body onLoad="init();"> 真是!@#$%^&*!!
如果無法正常顯示也就算了, 它的錯誤訊息竟然還是 "無法連上網頁, 叫我去檢查網路連線!!…",
為了這個 Bug 我竟然花了整整兩天才搞定, 真是浪費我的生命!!….
 
因為我是使用 Java RequestDispatcher.include() 建立網頁, 因此我的網頁是由很多份 JSP "組合"而成,
在正常情況下, 我的 Code 都必須 reuse ,因此我當然不可能採用 愚蠢的 <Body onLoad="init();">
最後, 終於找到另一種解法 :
<script defer type="text/javascript">
       init();
</script>
 
好笑的是, 這在 FireFox 完全不是問題!!….
<script type="text/javascript">
       init();
</script>
就解決了!!
 
廣告

About fenjj

Perfect !!??...
本篇發表於 Uncategorized。將永久鏈結加入書籤。

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s