因為把 JavaScript 開回來了,所以有這個困擾... :(
Google Chrome 的平滑捲動可以透過 chrome://flags
裡面的設定關閉 (OS X 上則是透過系統設定關閉),但就是有不少網站會很雞婆,用 JavaScript 模擬平滑捲動,所以就花了時間把 extension 寫出來:「Stop Smooth Scrolling」。
由於大多數平滑捲動的作法都是透過對 document
或是 window
上掛上與平滑捲動相關事件做到的,所以我是透過 addEventListener()
與 useCapture
flags,然後再用 preventDefault()
擋下後續的處理。
這樣做會有一些問題,其中比較明顯的是地圖類功能的滾輪會失效,這個部分我先放進預設的白名單了,如果有其他的問題,除了可以自己加以外,也可以開 ticket 讓我加進預設清單 :o
實際運作起來大概是這樣:
Anyway,寫這個還蠻有趣的,玩了不少新東西:
- 第一次在 Google Chrome Extension 上寫
options_page
。 - 第一次用 vue.js,而且還是 CSP-compliant 的版本,因為是在 Options 頁面上用。
- 第一次用 chrome.storage.sync 儲存資料。
- 第一次用 Promise 確保執行順序。