スマートキーワード + ブックマークレットを作ってみる

アドレスバーから素早く検索できる、スマートキーワード。
ブックマークにJavaScriptコードを入れて、単機能のスクリプトを動かすブックマークレット
この2つを組み合わせれば、スマートキーワードをより便利にすることができます。
これによって以下のようなことが実現できます。

  • goo辞書を、検索する言葉が英字なら英和、そうでなければ和英を自動的に使うようにできる
  • Googleマップのルート・乗換案内のように、検索する言葉を2つ入れるようなものにも対応できる
  • 検索オプションごとにキーワードを作らなくても、検索する言葉に検索オプションを含めるようにすることができる


スマートキーワード+ブックマークレットのベース部分のスニペット

javascript:(function(){
  var engine = 'サーチエンジンのURI断片';
  var s = '%s';
  var q = s;
  if (q === '%s') { q = ''; }

  /* それぞれの処理 */

  location.href = q;
})();

改行を除去する

ブックマークに入れるときは、改行を無くして1行にしなければなりません。
テキストエディタ正規表現による置換で、[\t\n\r ]+ を 半角スペース1つ にすべて置き換えれば素早く除去できます。

注意点

  • %sが検索する言葉に置き換えられるため、コード内で '%s' を使えば ' が、"%s" を使えば " が検索する言葉に使えなくなる( \ でエスケープすれば使える)
  • UTF-8に対応していないサイトの場合、日本語が文字化けする
  • アドレスバーからではなく、通常のブックマークとして使うと、%sが置換されない
  • すべての %s が検索する言葉に置き換えられるため、置き換えずに '%s' を使いたい場合は '%'+'s' にしたり、/%s/ を使いたい場合は /[%]s/ にしたりする必要がある
  • NoScriptを使っている場合は、「ブックマークから開いたサイトを許可する」にチェックを入れる必要がある