2014年4月2日 星期三

Safari上無法捕捉Mouse wheel事件


公司的產品上有一個功能

需要捕捉滑鼠滾輪事件來做Zoom in / Zoom out的功能

某日更新了Safari後

就再也捕捉不到滾輪事件了 ◢▆▅▄▃崩╰(〒皿〒)╯潰▃▄▅▇◣

改了很多方式

本來是在div tag裡面設定onmousemove屬性

改在body裡設置也不行

用addEventListener也無效


但更崩潰的是

如果寫單純的小網頁 裡面只放一個div

以上方式都運作正常...

所以感覺也不像Safari的bug

但是...我們網頁沒改呀 確實是更新了Safari後才出現問題的


這問題困擾了我整整一週

終於讓我發現可能的原因

我用來測試的網頁沒有用到Frame

但公司產品的網頁有

用frame跟mouse wheel當關鍵字

找到了這篇文章

http://stackoverflow.com/questions/21722517/google-maps-scroll-wheel-feature-doesnt-work-in-safari

onmousewheel="false" 只是設定一個屬性 就解決了困擾了我一整個禮拜的bug



如果用google map API的範例網頁

也可以發現類似的問題

https://developers.google.com/maps/documentation/javascript/examples/map-simple?hl=zh-TW

以上網頁滾動滑鼠時 無法放大/縮小地圖

但如果點選底下 "View this example full screen."

就會發現又正常了



沒有留言:

張貼留言