Firefox用拡張機能Greasemonkey用のスクリプトです。
このスクリプトをGreasemonkeyに登録すると図のようにGoogle検索結果のページタイトル横に窓アイコンが追加されるようになります。
表示された窓アイコンをクリックするとリンク先を新規ウインドウ(設定によっては新規タブ)で開くことができます。
JavaScriptの内容を書き換えることによって窓アイコンをテキストに替えることができます。
詳しい解説は続きをどうぞ。
スクリプトの内容
Googleの検索結果で表示される各ページへのアンカータグにはclass名として"l"が与えられています。検索結果ページ内のアンカータグのclass名を探索し"l"である場合にそのアンカータグの後ろに新たにアンカータグを追加しています。
また、Googleにログインしている際に検索履歴でクリックしたページが残るように元々のアンカーにあるonmousedownイベントも付加してあります。
実際に追加されているタグは
<a onmousedown="Googleのイベント" href="リンク先URL" target="_blank" >窓アイコン</a>
といった具合です。
窓アイコンの仕様
JavaScript単体で使用するという制限なのでうちのサーバーに画像を置いて直リンさせてもよかったのですが、それだと無駄な通信をしなければならないのでKawa.net xpで公開されている[JavaScript] dataスキームURI生成(画像データのBase64変換)を使用させていただきました。
画像をBase64エンコードすることで、JS単体での画像表示が可能なわけです(IEは無理)。
窓アイコンをテキスト表示にする
アイコン表示ではなくテキストで表示させる場合は一旦上記のuser.jsをローカルに保存し、ファイルをテキストエディタで開きanchorObjectの値をテキストに替え保存します。保存したuser.jsをFirefoxで開いてGreasemonkeyに登録すれば、窓アイコンをテキストに替えることができます。
注意点
飽くまで個人的に作ったuser.jsなので、Greasemonkeyへの登録は自己責任でお願いします。
また、Googleの仕様が変更された場合、もしくはFirefoxの仕様が変更された場合にGoogleNewWin.user.jsが使用できなくなる恐れがあります。
他のGoogle用のスクリプトとバッティングする場合は教えていただければできる限りで対応します。
感想文
Greasemonkeyを初めて見た時、「Firefox、何でもありかよ!!」と驚いたのを覚えています。で、いろんなサイトに対してjs書いたんですが、無茶苦茶なソースで無理やり動かしていました。
料理作って自分で食べる分には良いけど人には出せないっていう感じです。
で、今回もそんな感じだったんですけど、試しに出してみるかってことで公開する運びとなりました。
もしかしたら、もう既に同様の機能を持ったスクリプトがあるかもしれませんので、その際はこの記事見なかったことにしてください。
ものすごく地味なスクリプトですがよろしくお願いします。
正直「マウスの中クリックで事足りるよなー」と思う今日この頃です。