新・日々の暮らしに疲れてない?

一人バンド、火頭工房

マウスジェスチャーを調べてみて。その2

前回に続いて、巷のマウスジェスチャーを見て回った話。前回はページバック機能を真似してみたのですが、意外と使わないことに気づきました。

 

ページバック機能は、あってもいいか、という程度の使用感でしたが、それよりも右クリックホールド+ドラッグで機能をトリガーさせる、というのは使えそう。

 

上下左右、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!!

 

マウスジェスチャー系の機能が増えて来たので、これらをまとめられたら良いのですが...考えなしに作りすぎて組上げるのが大変そうでしり込みします、まさにクーロン城状態。