如果你的專案有用到其他 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");
╮(-_-)╭
我將 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");
╮(-_-)╭
想起來前兩天看到的jQuery 1.9 升級指南,不藏私
回覆刪除分享給大家 http://blog2.darkthread.net/post-2013-01-27-jquery-1-9-migrate.aspx
嗯,黑暗大那篇文章很受用。其實我也有在 follow 黑暗執行緒,只是並沒有時間細讀所有文章,大都是真正碰到問題時才去找。JavaScript 這塊,實在很不想碰的(這東西是人寫的嗎?),但最近是被迫與之為伍啦!
回覆刪除多謝分享 ^^