ViChromeのIssueを解決
はじめに
・viChrome と言う GoogleChrome アドオンの不具合解消
・解消のためのアプローチ
・GitHubへのcommitまでのフロー
経緯
「キーボードでブラウザの挙動をマッピングして制御する」
アドオンを紹介しました。
しかし、Chromeのアップデートに伴って使えなくなって久しいのです。
以下のGitHubにあったIssue経由で解決出来そうだ!
と言う事で幾度かに渡って挑み、最終的に解消しました。
Keyバインドの仕様変更
http://pasokatu.com/15313
確かにv54あたりから使えなくなった。
しばらくv53までをインストールして使うも、再起動するたびに戻さなければならない苦行。
keyIdentifierをkeyに置き換えてみるも動かず。しばらく諦め期間が続きました。
改めて改造してみようと本家ViChromeのGitHubを見ると以下のIssueに行き着く。
https://github.com/k2nr/ViChrome/issues/67
mgi166氏が何やら改良してる!?
https://github.com/mgi166/ViChrome/branches/all
Chrome v57まで併せて更新している。これは使えそう。
早速自分のrepositoryへFork。
リンクフォーカスを実行してみると・・・動いた!!
が、スクロールが機能しない。。。
制御している “mode.js” を直截編集してリロードしながら探ってみる。
1 2 3 | Mode.prototype.reqScrollDown = function(args, times) { return g.view.scrollBy(0, g.model.getSetting("scrollPixelCount") * times); }; |
該当箇所でconsole.logを出力すると表示される。
つまりscrollByが機能していない。
更にview.jsのscrollByでOverrideしているところで window.scrollBy すると動く。
スクロールする差分のtop, leftは値が来ている。
と言う事は
1 | $(document.body).animate({ |
ここが動いていないと結論。
“document.body javascript animate”で検索してみると見事ヒット
http://chaika.hatenablog.com/entry/2017/09/22/090000
これもChromeの仕様変更による、、、document.documentElementに置き換えてしまえば動く。
Firefox等では・・・と記述もあるがChromeのアドオンなので無視。
最終的に以下のcommitで解決!
https://github.com/m-ohba-sterfield/ViChrome/commit/b795405539c34b6163753b80bea910e71d4facf5
ViChrome愛好家のお役に立てれば幸いです。
Author Profile
スターフィールド編集部
SHARE