使用Fancybox的一個bug:Cannot read property 'msie'

事由:
最近使用最新版的fancybox,jquery.fancybox-1.3.4.js
但是console.log出現了這個bug : Cannot read property 'msie'
也因為無法讀取到msie這個property,因此頁面上有使用fancybox的地方無法正常運作fancybox
看到msie讓我推測是不是因為1.3.4版的fancybox是搭配jQuery.1.9以上的版本
(因為jQuery1.9以上的版本不支援瀏覽器的判斷)


Issue:
我看到的類似的問題在github上可以參考
https://github.com/fancyapps/fancyBox/issues/485


Stackoverflow上的解決方式,有效!
http://stackoverflow.com/questions/14344289/fancybox-doesnt-work-with-jquery-v1-9-0-f-browser-is-undefined-cannot-read
解決cannot read property 'msie'的方法是 :

  1. 請先打開 jquery.fancybox-1.3.4.js
  2. 將大約第29行取代成 : isIE6 = navigator.userAgent.match(/msie [6]/i) && !window.XMLHttpRequest,
  3. 將所有的 $.browser.msie 取代成 navigator.userAgent.match(/msie [6]/i)
另外這個stackoverflow也提到,如果使用fancybox2.1.4的版本,這個issue就不會有了。:)



結論:
Stackoverflow的解法還蠻俐落的,我其實是還蠻不想再load一個Migrate XDD
使用這類的套件如果遇到問題只能上網求解了,不然就是要很爭氣地自己有辦法寫出一個類似的plugin。

留言

這個網誌中的熱門文章

[Android] 筆記 手機上測試自己的 APP

解決fatal: Not a git repository (or any of the parent directories): .git錯誤

[Android 筆記] 設定 ImageView 的圖檔來源