Join MDN and developers like you at Mozilla's View Source conference, 12-14 September in Berlin, Germany. Learn more at https://viewsourceconf.org

ウェブページからの検索エンジンの追加

Firefox では JavaScript コードから検索プラグインをインストールすることができ、OpenSearch と Sherlock という 2 つの検索プラグインフォーマットをサポートしています。

注意: Firefox 2 からは、OpenSearch が Firefox の検索フォーマットとして推奨されています。Sherlock のサポートは将来廃止する予定です (バグ 862137)。

JavaScript コードが検索プラグインをインストールしようとすると、Firefox はユーザにプラグインのインストールを許可するか尋ねる警告を表示します。

OpenSearch プラグインのインストール

OpenSearch プラグインをインストールするには、window.external.AddSearchProvider() DOM メソッドを使う必要があります。このメソッドの構文はこのようになります。

window.external.AddSearchProvider(engineURL);

engineURLは検索プラグイン XML ファイルへの絶対 URL です。

注意: OpenSearch は Firefox 2 以降でのみサポートされています。

Sherlock プラグインのインストール

廃止
This feature is obsolete. Although it may still work in some browsers, its use is discouraged since it could be removed at any time. Try to avoid using it.

window.sidebar.addSearchEngine のサポートは Firefox 44 で廃止しました。

Sherlock プラグインをインストールするには、window.sidebar.addSearchEngine() を呼び出す必要があり、その構文は以下のとおりです。

window.sidebar.addSearchEngine(engineURL,iconURL,suggestedName,suggestedCategory);
  • engineURL パラメータはインストールする Sherlock プラグイン (".src" ファイル) の URL です。
  • iconURL はプラグインに関連付けるアイコンの URL です。
  • suggestedName パラメータはプラグインのインストールの許可をユーザに尋ねるときにだけ使用します。つまり 「engineURL からsuggestedName をインストールしますか?」 のようなメッセージが表示されるでしょう。
  • suggestedCategory パラメータは使われていません。空の文字列 ("") か null を指定すべきです。

Sherlock の詳細は http://developer.apple.com/macosx/sherlock/ を参照ください。

ブラウザの検索エンジン機能の検出

検索エンジンを追加するための API は Firefox 1.5 から Firefox 2 までに変更されており、また Firefox 1.5 は OpenSearch 記述ファイルをサポートしていません。このため、検索エンジンを追加する時に後方互換性を維持したい場合、すなわち Firefox 1.5, Firefox 2.0, IE7 で動作するようにしたい場合、Web ページの製作者は Sherlock と OpenSearch の両方のフォーマットに対応し、またブラウザの機能を適宜検出しなければなりません。次のコード片はこういったことを行う一つの例です。

function installSearchEngine() {
 if (window.external && ("AddSearchProvider" in window.external)) {
   // Firefox 2 と IE 7 では OpenSearch を使う
   window.external.AddSearchProvider("http://example.com/search-plugin.xml");
 } else if (window.sidebar && ("addSearchEngine" in window.sidebar)) {
   // Firefox 1.5 以下では Sherlock を使う
   window.sidebar.addSearchEngine("http://example.com/search-plugin.src",
                                  "http://example.com/search-icon.png",
                                  "Search Plugin", "");
 } else {
   // 検索エンジンはサポートされていない (IE 6, Opera など)
   alert("No search engine support");
 }
}

ドキュメントのタグと貢献者

 このページの貢献者: yyss, Mgjbot, Potappo, Shoot, Taken
 最終更新者: yyss,