--- title: Creating OpenSearch plugins for Firefox slug: Web/OpenSearch tags: - Add-ons - Search plugins translation_of: Web/OpenSearch original_slug: Creating_OpenSearch_plugins_for_Firefox ---
Firefox 2 は検索プラグインとして OpenSearch 記述フォーマットをサポートしています。OpenSearch 記述シンタックスを使ったプラグインは IE 7 と Firefox で互換性があります。このため、ウェブでの利用で推奨されたフォーマットです。
Firefox は{{ 訳語("検索サジェスト", "search suggestions") }}と SearchForm
要素のような OpenSearch 記述シンタックスに含まれていない追加の検索機能もサポートします。この記事では Firefox 特有の機能をサポートした OpenSearch 互換の検索プラグインの作成にフォーカスをあてていきます。
OpenSearch 記述ファイルは検索プラグインの自動検出に書かれているように通知でき、Web ページから検索エンジンを追加するに書かれているようにプログラム的にインストールできます。
検索エンジンを記述した XML ファイルはとてもシンプルで、以下の基本的なテンプレートに従います。あなたが書いている検索エンジンに応じて、斜体になっている箇所をカスタマイズする必要があります。
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/" xmlns:moz="http://www.mozilla.org/2006/browser/search/"> <ShortName>engineName</ShortName> <Description>engineDescription</Description> <InputEncoding>inputEncoding</InputEncoding> <Image width="16" height="16">data:image/x-icon;base64,imageData</Image> <Url type="text/html" method="method" template="searchURL"> <Param name="paramName1" value="paramValue1"/> ... <Param name="paramNameN" value="paramValueN"/> </Url> <Url type="application/x-suggestions+json" template="suggestionURL"/> <moz:SearchForm>searchFormURL</moz:SearchForm> </OpenSearchDescription>
method
属性は結果を得るために GET
と POST
リクエストのどちらを使うか指定します。template
属性は検索クエリのベースとなる URL を指定します。POST
リクエストをサポートしていません。type="text/html"
は実際の検索結果そのものの URL を設定するために使われます。type="application/x-suggestions+json"
は検索サジェストを得るために使われる URL を設定するために使われます。{searchTerms}
を使うことができます。サポートしている他の動的な検索パラメータは OpenSearch 1.1 パラメータに記述されています。{searchTerms}
を使うことができます。moz:
" XML 名前空間接頭辞を使っています。検索プラグインを提供しているウェブサイトは Firefox ユーザがプラグインを簡単にダウンロードしてインストールできるように通知することができます。
自動検出をサポートするには、ウェブページの <HEAD>
セクションに単に一行追加するだけです。
<link rel="search" type="application/opensearchdescription+xml" title="searchTitle" href="pluginURL">
斜体の項目を以下で説明されているように置き換えてください。
もしあなたのサイトが複数の検索プラグインを提供しているなら、それら全ての自動検出をサポートすることができます。例:
<link rel="search" type="application/opensearchdescription+xml" title="MySite: 著者" href="http://www.mysite.com/mysiteauthor.xml"> <link rel="search" type="application/opensearchdescription+xml" title="MySite: タイトル" href="http://www.mysite.com/mysitetitle.xml">
この方法であなたのサイトは著者による検索とタイトルによる検索を行うプラグインを別々のものとしてを提供することができます。
検索プラグインの XML に問題があると、検出されたプラグインを Firefox 2 に追加する際にエラーが発生するでしょう。エラーメッセージは完全な参考になるわけではありません、しかし、以下のヒントが問題を探す手助けになるでしょう。
ファイルを Firefox に直接読みこませることによって確認できます。テンプレート URL の中のアンパサンド(&)は & でエスケープされている必要があり、タグは最後のスラッシュか一致する終了タグで閉じられている必要があります。
xmlns
属性が重要です。xmlns
属性無しでは "Firefox は次の場所から検索エンジンをダウンロードできませんでした:(URL)" というエラーメッセージを受け取るでしょう。text/html
URL を含めなくてはならない ことに注意してください — Atom や RSS URL タイプしか含まない検索エンジン(それは妥当なのですが、Firefox はサポートしていません) は "検索エンジンをダウンロードできませんでした"というエラーを引き起こします。
さらに、検索プラグインサービスはプラグイン開発者が使うであろうログの仕組みを提供します。about:config を使い 'browser.search.log
' を true
にしてください。検索プラグインが追加されるとログ情報が Firefox のエラーコンソール(ツール -> エラーコンソール)に表示されます。
data:<code> URI スキーマ