我有一个本地搜索引擎,由elasticsearch和API支持,我希望能够从GoogleChrome搜索这些文档(构建可从谷歌,而不是 chrome )直接。在这个用例中,我将使用 chrome 只与这个搜索引擎,所以我不想使用Omnibox关键字搜索API。我想得到与在chrome中选择默认搜索引擎相同的行为。
1.开始在OmniBox中输入,它会显示一个建议列表。
1.点击回车键,进入搜索结果页面
我在设置下添加了一个新的搜索引擎,并提供了搜索API的URL,使#2工作。
我的服务器暴露的两个网址是:
- http://localhost:3000/complete?query=my(这将返回我希望在OmniBox中键入时显示的搜索建议列表)。
- http://localhost:3000/results?query=my+sample+query(这将实际的搜索结果返回为网页,这是工作)
我尝试过的事情:
1.添加了使用window.externals.AddSearchProvider和OpenSearchDescription.xml链接的搜索引擎。XML也有建议网址。
1.尝试用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的官方版本中是否有可能这样做)。
2条答案
按热度按时间chhkpiq41#
我终于找到了解决办法。
opensearch.xml
文档引用可以用作HTML页面head部分的链接,它包含两个URL方案,一个用于搜索结果,另一个用于建议。详情可在此处找到:Opensearch Document Specs.
当我更新了我的
index.html
并在Chrome中打开页面时,Chrome自动添加了一个新的搜索引擎。它没有显示在 * 设置〉管理搜索引擎 * 下有一个建议URL。接下来,我选择了我的引擎作为默认搜索引擎,点击 * 设为默认 *,完成了!现在我可以看到所有的搜索建议,在omnibox没有使用关键字。
a0x5cqrl2#
Chrome扩展程序有一个Setting Overrides机制,这个机制并不广为人知,它可以实现你想要的,但是: