在Chrome

时间:2016-02-06 04:44:27

标签: google-chrome search google-chrome-extension chromium search-suggestion

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

  1. 开始输入OmniBox,它会显示一系列建议。
  2. 按Enter键进入搜索结果页面
  3. 我通过在设置下添加新的搜索引擎并提供搜索API的URL来获得#2的工作。我不能让#1工作。

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

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

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

    3. 我尝试过的事情:

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

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

      3. 我搜索了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 个答案:

答案 0 :(得分:5)

我终于找到了解决方案。

$.validator.addMethod("max-numeric", function(value, element, param) { var maxValue = $(element).attr("data-max"); return (!maxValue) || maxValue >= value; }, $.validator.format('Applicants must be older than {0} and younger than {1} years of age')); $("#data-form").validate({ rules: { "form.params1.p4": { "min-numeric": [5, 6] } } }); 文档参考可以用作HTML页面的head部分中的链接。它包含两个URL方案,一个用于搜索结果,另一个用于建议。

详情可在此处找到: Opensearch Document Specs

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

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

答案 1 :(得分:0)

Chrome扩展程序的Setting Overrides机制尚未广为人知,可以实现您的目标,但是:

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