既有網站別急著更新至 jQuery v1.9

如果你的專案有用到其他 jQuery plugins,別急著更新到 jQuery 1.9....

我將 jQuery 更新至 v1.9 之後,原本運作正常的網頁,用 Chrome 瀏覽時,用來顯示查詢結果的 jqGrid 區塊完全空白一片。以 IE 9 瀏覽該頁面,出現錯誤訊息:

Unable to get value of property 'msie': object is null or undefined.

導致此錯誤的程式碼在 jqGrid 裡面,如下圖:


原來,jQuery 早在 v1.3 的時候就已經提醒browser 屬性將在 v1.9 時移除

再看一下我的 jqGrid 版本,是 v4.4.1。把它升級到 v4.4.4 之後,上述問題就解決了。

但如果網站有用到其他 jQuery plugins,又是產品環境的話,除非已經全部測試過,否則最好還是別急著將 jQuery 版本更新至 v1.9。

更嚴謹的 IE 9

最近把一個「第三方」的老網站加入 MVC 框架,也陸續碰到一些問題。比如說,有個網頁原本在 IE 8 跑都沒問題,一換到 IE 9 便出錯,說什麼無效字元。如下圖所示:


用 Visual Studio 追蹤了一會兒,發現原來是那個老網站的程式碼裡面有一行不太標準的寫法:

var tag = document.CreateElement("<br>);

這寫法在 IE 8 竟然是可以跑的(難怪一直沒人發現),可是到了 IE 9 就不讓你這樣亂寫了。正確的寫法是:

var tag = document.CreateElement("br");

 ╮(-_-)╭

2 則留言:

  1. 想起來前兩天看到的jQuery 1.9 升級指南,不藏私
    分享給大家 http://blog2.darkthread.net/post-2013-01-27-jquery-1-9-migrate.aspx

    回覆刪除
  2. 嗯,黑暗大那篇文章很受用。其實我也有在 follow 黑暗執行緒,只是並沒有時間細讀所有文章,大都是真正碰到問題時才去找。JavaScript 這塊,實在很不想碰的(這東西是人寫的嗎?),但最近是被迫與之為伍啦!
    多謝分享 ^^

    回覆刪除

技術提供:Blogger.
回頂端⬆️