在Chrome中添加自定义搜索引擎的建议网址

drc*_*coa 6 search google-chrome chromium google-chrome-extension search-suggestion

我有一个本地搜索引擎支持elasticsearch和一个瘦的nodejs API用于搜索.我希望能够直接从Google Chrome(可从Google,而不是Chromium获取)中搜索这些文档.在这个用例中,我将使用chrome 与此搜索引擎,因此我不想使用OmniBox关键字搜索API.我想要在Chrome中选择默认搜索引擎时获得与我相同的行为.这是

  1. 开始在OmniBox中输入,它会显示一系列建议.
  2. 点击进入,进入搜索结果页面

我通过在设置下添加新的搜索引擎并提供搜索api的URL来获得#2的工作.我不能让#1工作.

我的服务器公开的两个网址是:

  1. http:// localhost:3000/complete?query = my(这会返回我想在OmniBox中输入时显示的搜索建议列表).

  2. http:// localhost:3000/results?query = my + sample + query(这会将实际搜索结果作为网页返回,这是有效的)

我尝试过的事情:

  1. 使用带有OpenSearchDescription.xml链接的window.externals.AddSearchProvider添加了搜索引擎.XML也有建议网址.

  2. 尝试使用OmniBox编写背景扩展,但它不允许我在不使用关键字的情况下进行搜索

我搜索了Chromium并找到了这个JSON文件

https://code.google.com/p/chromium/codesearch#chromium/src/components/search_engines/prepopulated_engines.json&q=prepopulated&sq=package:chromium&l=1

但我不知道如何使用它(或者甚至可以在官方版本的Chrome中执行此操作).

drc*_*coa 5

我终于找到了解决方案.

opensearch.xml文档引用可以被用作在HTML页面的头部的链接.它包含两个URL方案,一个用于搜索结果,另一个用于建议.

详细信息可以在这里找到: Opensearch文档规范.

只要我index.html在Chrome中更新并打开了该页面,Chrome就会自动添加一个新的搜索引擎.它没有显示设置>管理搜索引擎下的建议网址.

接下来,我通过单击Make Default并选择我的引擎作为默认搜索引擎!现在,我可以在不使用关键字的情况下查看多功能框中的所有搜索建议.

  • 我运行 Charles Proxy 并注意到每次输入内容时都会有一个 API 调用,因此某个地方的每个搜索引擎都有一个建议 URL 设置。当我检查 DuckDuckGo 网站如何执行此操作时,我偶然发现了这个特定的解决方案,当它显示“单击此处在 chrome 上安装 DDG”时。他们调用 window.external.AddSearchProvider("link to opensearch.xml for ddg)。完成。我得到了该 xml 文件作为参考,用我的服务器信息对其进行了编辑,并且成功了。 (2认同)

Xan*_*Xan 1

Chrome扩展有一个Setting Overrides机制,这个机制并不广为人知,它可以实现你想要的,但是:

  • 至少根据文档,它仅适用于 Windows 和 Mac
  • 除非您可以在网站站长工具中验证该网站,否则您将无法发布该扩展程序。否则,您将陷入解压安装的困境。