--- 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 つの検索プラグインフォーマットをサポートしています。
JavaScript コードが検索プラグインをインストールしようとすると、Firefox はユーザにプラグインのインストールを許可するか尋ねる警告を表示します。
{{ 英語版章題("Installing OpenSearch plugins") }}
OpenSearch プラグインをインストールするには、window.external.AddSearchProvider()
DOM メソッドを使う必要があります。このメソッドの構文はこのようになります。
window.external.AddSearchProvider(engineURL);
engineURLは検索プラグイン XML ファイルへの絶対 URL です。
{{ 英語版章題("Installing Sherlock plugins") }}
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/ を参照ください。
{{ 英語版章題("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"); } }