またしてもFirefoxのキーボードショートカット話です.こればっかり.事の発端は下記のエントリです.
検索をするときには Google を使うことが多いです。いろいろな方法で Google にアクセスすることが多いわけですが、最終的に Google のサイトに飛んで検索をすると希望のものが出てこない場合、さらにキーワードを追加したり、変更したりするわけです。そのときにちょっとしたことですが、検索フォームの中にフォーカスが持っていけるようになると便利です。
Going My Way: Google の検索フォームにフォーカスする Google Search Box AccessKey
確かにその通りですね.カーソルを検索フォームまで移動させるには,けっこうなエネルギーが必要です.キーボードショートカットでカーソル移動できたら最高です.でもこれは,Googleの検索結果のページに限定される話ではありません.マウスを窓から投げ捨てろ!ショートカットであいつに差を付けるメソッド | Queueで紹介されている拡張機能firstfieldは,まさにすべてのサイトでキーボードショートカットによるカーソル移動を目指したものです.具体的には,閲覧中のページにおいて最初に出現するテキストフォームにカーソルを合わせます.
さっそく導入してみましょう… と思いきや,現行のFirefoxには対応していないようです.install.rdfを偽装してもダメでした.仕方がないのでxpiファイルをzipにリネームして解凍し,XULのソースコードの一部をkeyconfigに割り当てました.設定には,以前のエントリで紹介した拡張機能keyconfigとfunctions for keyconfigが必要になります.
[code]
var doc = window.content.document;
if (!doc) return;
for (var i=0; i < doc.forms.length; i++) {
var elements = doc.forms[i].elements;
for (var j=0; j < elements.length; j++) {
if (elements[j].type == "text") {
elements[j].focus();
elements[j].select();
return;
}
}
}
[/code]
キーは本家に習って「Ctrl+;」としました(なぜか表示は「Ctrl+=」になる).この場合「大きく[文字サイズ]」のキーと競合するのでこちらをOFFにしておきます.ボクはまず使わない機能なので問題ありません.あとはFirefoxを再起動すればキーば有効になります.いくつかのサイトで動作確認を行いました.
Google
cameraLady
mixi
YouTube
del.icio.us
はてなダイアリー
ボクが確認したかぎりでは割と使えそうです.ただ,ブログのエントリページで,検索フォームよりコメントの名前欄にカーソルが移動してしまうのは難点です.もう少し工夫すればもっと良いものができそうなのですが,今日はこの辺で終わりにします.
実は当初はGreasemonkeyでこれを実現しようとしていました.「せっかくGreasemonkey本ももらったし!」と意気込んでみたものの,どうも上手くいかなくて断念しちゃいました.Greasemonkeyでの実装があれば,ぜひソースを見て勉強したいです.
追記
Focus Field – LibelablogにGreasemonkeyでの実装があります!