Firefox では JavaScript コードから検索プラグインをインストールすることができ、OpenSearch と Sherlock という 2 つの検索プラグインフォーマットをサポートしています。
JavaScript コードが検索プラグインをインストールしようとすると、Firefox はユーザにプラグインのインストールを許可するか尋ねる警告を表示します。
OpenSearch プラグインのインストール
OpenSearch プラグインをインストールするには、window.external.AddSearchProvider()
DOM メソッドを使う必要があります。このメソッドの構文はこのようになります。
window.external.AddSearchProvider(engineURL);
engineURLは検索プラグイン XML ファイルへの絶対 URL です。
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 の詳細は https://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("https://example.com/search-plugin.xml"); } else if (window.sidebar && ("addSearchEngine" in window.sidebar)) { // Firefox 1.5 以下では Sherlock を使う window.sidebar.addSearchEngine("https://example.com/search-plugin.src", "https://example.com/search-icon.png", "Search Plugin", ""); } else { // 検索エンジンはサポートされていない (IE 6, Opera など) alert("No search engine support"); } }