前回に続いて、巷のマウスジェスチャーを見て回った話。前回はページバック機能を真似してみたのですが、意外と使わないことに気づきました。
ページバック機能は、あってもいいか、という程度の使用感でしたが、それよりも右クリックホールド+ドラッグで機能をトリガーさせる、というのは使えそう。
上下左右、4種類の機能を持たせることが出来ますもんね、私は右ダブルクリックも完成させているので5種類も!!
もう1つ使えそうと目星をつけたのが、タブの移動機能。わざわざページ上を狙ってクリックするの面倒ですもんね! 右クリック+右ドラッグで右隣のタブに移動できるようにしました。左に移動するときは...大抵は自作の機能でタブを閉じるので、とりあえず無視だ!
chromeのtab apiをバックグラウンドスクリプトで使うので結構面倒でした。
現在の閲覧中のタブの情報は取得できるのですが、次のタブを取得、などという都合の良い機能が用意されておらず、工夫が必要でした。
まずはchrome.tabs.queryで現在閲覧中のタブの情報を取得する。開いたタブにはそれぞれidやindexが割り振られているが、idは固有っぽく、隣のタブのidを予想したりすることはできない。一方、indexは連番になっているので良かった。
というわけで、もっかいchrome.tabs.query で今度は、index + 1 を指定し、右隣のタブ情報を取得。これで隣のタブが操作できる、という感じです。
chrome.tabs.update でタブを移動(というか注目?)できます。
ただ隣のタブに移動するだけなのに、大変でした。
細かいことですが、右クリックに機能を乗せると、元々ある右クリックの機能と干渉する可能性があるので、注意が必要です。右クリックで開くメニューあるじゃないですか? 自作の機能をトリガーした後でそのメニューが表示されていると邪魔なので、それを抑えるのに e.preventDefault するのですが、そのタイミングなどが結構読み辛く、試行錯誤が必要でした。
onmousedownは押した時に発火し、oncontextmenuは、なんとクリックを離した時に発火するんですよ! onmouseupと同じ扱いです。
以上。
拡張機能を作り始めてから、おかげさまでブラウジング事情はかなり良くなりました、もう自作機能なしでは生活できないです。
私のブラウザでは現在以下を採用しています。一部は市場未公開。
・ページスクロール機能(ページトップへ一瞬で、スクロールバックもできる)
・YouTubeの画質自動調整
・オートコンプリート機能(メルアド、パスワードなどを簡単入力)
・広告消す君(自作ではない)
・ブラウザ落とす時にクッキー&履歴消す機能(自作ではない)
・データセーバ(グーグル提供)
・リンク上で左クリック長押しで新タブで開く、ページは移動しない。
・右ダブルクリックで現在のタブを閉じる
・グーグルの検索結果をワンタッチで期間フィルター
・右クリック+左ドラッグでページバック
・左右同時クリックでページリロード
・ページのバックグラウンドカラーを優しい色に変える君
・フォントサイズ調整
・右クリック+右ドラッグで右のタブへ移動 ←NEW!!
マウスジェスチャー系の機能が増えて来たので、これらをまとめられたら良いのですが...考えなしに作りすぎて組上げるのが大変そうでしり込みします、まさにクーロン城状態。