Firefox では JavaScript コードから検索プラグインをインストールすることができ、OpenSearch と Sherlock という 2 つの検索プラグインフォーマットをサポートしています。
JavaScript コードが検索プラグインをインストールしようとすると、Firefox はユーザにプラグインのインストールを許可するか尋ねる警告を表示します。
OpenSearch プラグインのインストール
OpenSearch プラグインをインストールするには、window.external.AddSearchProvider()
DOM メソッドを使う必要があります。このメソッドの構文はこのようになります。
window.external.AddSearchProvider(engineURL);
engineURLは検索プラグイン XML ファイルへの絶対 URL です。
Sherlock プラグインのインストール
廃止
この機能は廃止されました。まだいくつかのブラウザーで動作するかもしれませんが、いつ削除されてもおかしくないので、使わないようにしましょう。
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");
}
}