2

私の Firefox アドオンは、検索エンジンを追加します。

  • 提案を提供します
  • 実行時に指定された検索テンプレートの URL を取得します (つまり、テンプレートの URL はユーザーの設定に依存します)。

そして、両方を同時に行う方法がわかりません。

検索エンジンを追加するための 2 つのオプションが表示されます。

addEngineWithDetails()テンプレート URL を使用して検索エンジンを追加できます。しかし、(どうやら?) 候補 URL を提供することはできません。

addEngine()XML ファイルで指定された検索エンジンを追加できます。しかし、そのファイルがローカルのアドオン ディレクトリ (例: chrome://example-engine/content/search.xml) に保存されている場合、実行時にテンプレートの URL を変更するにはどうすればよいですか? また、オンライン XML の使用は、アドオンのインストール中にインターネット接続が切断または不良になる可能性があるため、安全ではありません。

4

1 に答える 1

4

まず第一に、あなたが正しい、addEngineWithDetails提案をサポートしていません。

行く方法は、addEngine(and removeEngine) を使用することです。

質問の「動的」部分については、テストしていませんが、実装はURIsを喜んで受け入れるようdata:です。したがって、次のことができます。

  • 任意のメソッドを使用してデータ URI を構築します (完全な XML DOM を構築してシリアル化することもできます)。
  • addEngineデータ URI で呼び出します。
  • ユーザーが環境設定を変更したら、古いエンジンを削除して、新しいエンジンを構築します。
于 2013-11-04T23:18:38.983 に答える