2013年7月16日 星期二

使用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。

沒有留言:

張貼留言

若你看的文章,時間太久遠的問題就別問了,因為我應該也忘了... XD

Vue multiselect set autofocus and tinymce set autofocus

要在畫面一進來 focus multiselect 的方式: 參考: https://jsfiddle.net/shentao/mnphdt2g/ 主要就是在 multiselect 的 tag 加上 ref (例如: my_multiselect), 另外在 mounted...