Firefoxでスマートキーワード+ブックマークレット(JavaScript)

Firefoxのロケーションバー(アドレスバー)から検索を行える、スマートキーワード。
(参考: Firefoxのスマートキーワード - えむもじら
これは、検索バーのようにサーチエンジンを選ばなくてもキーボードだけで素早く検索できるのでよく使っている。


で、このスマートキーワードとブックマークレットを組み合わせて使うことができることに気づいた。
スマートキーワードだけだと、乗換案内の検索などでクエリを2つ送りたい場合などには対応できないのだけど、
JavaScriptを併用すれば、この問題は解決する。

とりあえず作ってみたのが以下のもの。(skは設定したキーワード部分としている)

Googleマップ (ルート・乗換案内)

javascript:var s = '%s'; args = s.split(/, |; |;|,| /i); location.href = "http://local.google.co.jp/maps?q=from%3A" + args[0] + '%20to%3A' + args[1];
ロケーションバーへの入力 結果
sk 東京 大阪 "from:東京 to:大阪"で検索
sk 東京, 大阪 "from:東京 to:大阪"で検索

goo辞書 - 英和辞典

javascript: var s = '%s'; var url_prefix = "http://dictionary.goo.ne.jp/srch/ej/"; if(s.match(/^-\w/)){ var url = url_prefix + s.replace(/^-/, '') + '/m2u/'; } else if(s.match(/=/)) { var url = url_prefix + s.replace(/=/, '') + '/m1u/' } else { var url = url_prefix + s + '/m0u/'; }; location.href = url;
ロケーションバーへの入力 結果
sk word wordを前方一致検索
sk -word wordを後方一致検索
sk =word wordを完全一致検索
sk word= wordを完全一致検索

はてなグループ

javascript:var s = '%s'; var ary = s.split(/, |; |;|,| /i); location.href = "http://" + ary[0] + '.g.hatena.ne.jp/' + (ary[1] ? (ary[1] + '/') : '');
ロケーションバーへの入力 結果
sk group diary groupグループのdiary日記にアクセス
sk group, diary groupグループのdiary日記にアクセス
sk group groupグループにアクセス

一部のエンジンでの文字化けの解消

文字コードShift_JISEUC-JPになっていて、文字化けしてしまうサーチエンジンはブックマークファイル(bookmarks.html)を直接編集すれば文字化け解消できるらしい。
(LAST_CHARSET="Shift_JIS" や LAST_CHARSET="EUC-JP" を記述する。)
(参考: keijisato.info - Firefoxのアドレスバーからの検索(スマートキーワード)