その仕組みとトラブル回避方法をご紹介します。
仕組み
実はこれ、Bookmarkをちょっと拡張しただけ。ブックマークのプロパティを見ると名前、URL、キーワード、説明(英語版では Name, Location, Keyword, Description)という項目がある。
キーワード登録した場合のURLの、%sに注目。この%s、スマートキーワードで指定した文字列がここに挿入されることを意味する。
つまり、URLが"http://foo/bar/%s"、キーワードが foo だとしたら、ロケーションバーに "foo hoge"と入力すると、"http://foo/bar/hoge"にアクセスするということになる。
さて、何でこれで指定のサイトでキーワード検索できるのかというと、htmlを見れば、次にどういうページに行くのか書いてあるんですよ。
例えば Google の場合、検索フォームのhtmlはこんな感じになってる。
<form action="/search" name=f>
<input name=hl type=hidden value=ja>
で、FirefoxがブックマークしたURLがこれ
http://www.google.co.jp/search?hl=ja&q=%s&lr=
これが分かってれば不具合が合っても融通が利く。
不具合対策
検索結果がエラーになる
フォームに入力された文字列と、それによって開くページとの関係は上のように簡単に分かる。ただ、たまにはFirefoxが作るURLとは違うURLに飛ぶ場合もあり、スマートキーワードではエラーになってしまう。
こんなときはどうしたらいいのかというと
まず、ページでキーワードを普通に検索する。結果が表示されたらそのときのURLをチェック。そのURLの中からさっき指定したキーワードを探し出してそそ部分を %s に置き換えてブックマークに登録する。ブックマークに追加するときはキーワードも設定しておきましょう。
日本語だと上手くいかない
さて、他にありがちな問題は英語だと大丈夫なのに日本語だと失敗する、という場合です。この場合はキーワードのエンコード処理が間違ってます。
Firefoxのプロファイル(Windowsの場合 C:\Documents and Settings\ユーザー名\Application Data\Mozilla\Firefox\Profiles )を変更しましょう。
Profilesの下にあるbookmarks.htmlで LAST CHARSET を変更します。エンコードが何か分からなければとりあえず下記3パターンを試してみましょう。
LAST_CHARSET="EUC-JP"
LAST_CHARSET="Shift_JIS"
LAST_CHARSET="UTF-8"
これで大体のサイトは問題ないはず。
タグ:Firefox

