--- title: ウェブページからの検索エンジンの追加 slug: conflicting/Web/OpenSearch tags: - Add-ons - Search plugins translation_of: Web/OpenSearch translation_of_original: Web/API/Window/sidebar/Adding_search_engines_from_Web_pages original_slug: Adding_search_engines_from_web_pages ---

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

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

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

{{ 英語版章題("Installing OpenSearch plugins") }}

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

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

window.external.AddSearchProvider(engineURL);

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

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

{{ 英語版章題("Installing Sherlock plugins") }}

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

{{obsolete_header}}

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

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

window.sidebar.addSearchEngine(engineURL,iconURL,suggestedName,suggestedCategory);

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

{{ 英語版章題("Browser search engine capability detection") }}

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

検索エンジンを追加するための 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");
 }
}