読者です 読者をやめる 読者になる 読者になる

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

一人バンド、火頭工房

Chrome拡張機能 左クリック長押しでページを新タブで開くショートカット機能

どうも。火頭です。

仕事終わり夜のひととき、ネットサーフィンを楽しむ僕は以下の画像のような感じです。

f:id:hiatama:20161222225634p:plain

大抵はこの態勢で右手だけを動かしてページを閲覧していまして、タイピングする時はこの半身の状態からめんどくさそうに左手を伸ばして行います。

 

ロームの素晴らしい機能の一つに「コントロールキー + リンククリック」がありますよね、ページを新しいタブで開いてくれる神機能です。そうです、このコントロールキーを押すときにも私は半身の状態からめんどくさそうに左手を...

 

そこでクローム拡張機能として、マウスクリックの長押しで同じ機能を実装しようとしました。

 

 結果  一歩足りず

 

なんとクロームのポリシーだかのせいで、思うような機能には一歩及びませんでした。

※追記もありますので、改善した話も合わせてどうぞ。

 

 

処理の概要は以下↓

 

リンクを左クリック長押し → 

フラグが立ちタイマー機能が作動 → 

一定時間が経つと条件成立、onmousedownイベントからURLを取得 → window.open(取得したURL, '_blank')で新しいタブでページを開く → 

右手だけで行えてこりゃハッピー チヒッ

 

以上です。

 

問題は新しくタブを開いた時、元のページを離れ自動で新しいタブの方を注目してしまうんです。これをコントロールするために、任意のタブに注目する focus() や注目を外す blur() というメソッドがあるんですが...これがクロームのポリシーだかで無効なんです、直してくれないかなぁ。

 

ということで、長押しすればちゃんと新タブでページを開いてくれるんですが、元のタブを離れてしまうので、戻るために余計なクリックをしなければなりません。普段行っている、気になるページを新タブで開きまくって後で順に閲覧する、という行為が余計めんどくさくなったような...

 

さらに、あるサイトでは長押し判定のタイマーとして使っているsetTimeout関数が作動しないっぽい。私が別で使っている広告表示を制御する拡張機能(ソースのロードをブロックする?)などと干渉しているのか?など悩みましたが、原因は特定できず。うまくいかないもんです。 

 

次、改善した話 へと続く。