2

我的 Firefox 插件将添加一个搜索引擎,即

  • 提供建议
  • 获取在运行时指定的搜索模板 URL(即:模板 URL 取决于用户的偏好)

而且我看不到同时做这两件事的方法。

我看到添加搜索引擎的两个选项:

addEngineWithDetails()允许我使用模板 URL 添加搜索引擎。但它确实(显然?)不允许提供建议 URL。

addEngine()允许我添加在 XML 文件中指定的搜索引擎。但是如果将该文件本地保存在我的插件目录中(例如chrome://example-engine/content/search.xml),我如何在运行时更改模板 URL?并且使用在线 XML 是一个不安全的选择,因为在插件安装过程中互联网连接可能会中断或损坏。

4

1 回答 1

4

首先,你是对的,addEngineWithDetails不支持建议。

要走的路是使用addEngine(和removeEngine)。

至于您问题的“动态”部分:虽然我没有对其进行测试,但实现似乎很乐意接受data:URIs。所以你可以:

  • 使用您喜欢的任何方法构造数据 URI(甚至构造完整的 XML DOM 并对其进行序列化)。
  • addEngine使用数据 URI调用。
  • 当用户更改首选项时,删除旧引擎并构建一个新引擎。
于 2013-11-04T23:18:38.983 回答