如何在Chrome的地址栏中创建站点搜索功能?


11

当您在Google Chrome浏览器中访问stackoverflow.com时,如果在最后一个字符的前面加上空格,则地址栏将变为下面的屏幕快照中的地址栏。

然后,您可以按Tab键,也可以键入任何内容,然后按Enter键将带您搜索词的搜索页面: https://stackoverflow.com/search?q=anything

如何为我的网站做同样的事情?


我假设他们已经设置了站点搜索,并且只想像StackOverflow一样配置Chrome。如果是这样,这是一个非常容易回答的问题,一点也不是太广泛。
斯蒂芬·奥斯特米勒

3
Google产品论坛上似乎有人想出了这一点:productforums.google.com/forum
#!

达米斯,您是要从地址栏中添加网站搜索还是仅添加具有自动完成功能的网站搜索?
斯科特·威尔逊

1
我此刻写一个很好的答案太懒惰,所以这里有两个环节:opensearch.org/Documentation/Frequently_asked_questions和实施这一看:opensearch.org/Specifications/OpenSearch/...
奥斯卡·斯科格

@StephenOstermiller我重读了这个问题。我的错!我想到了进行站点搜索,却以某种方式错过了问题的真正本质。这是一个很好的问题。干杯!!
closetnoc

Answers:


6

假设您的网站上具有搜索功能,则可以利用Chrome 中的OpenSearch功能。

摘自Chromium文档

要为所有用户(甚至没有使用您的搜索表单的用户)启用此功能:

在您网站的主页上,提供指向OpenSearch描述文档的链接。OSDD的链接位于html文件的开头。例如:

<head>
  <link type="application/opensearchdescription+xml"
        rel="search"
        href="url_of_osdd_file"/>
</head>

本文档的重要部分是用于搜索您的网站的URL。

以下是包含最低要求的示例,有关可指定值的列表,请参阅OpenSearch描述文档规范。

<?xml version="1.0"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
  <ShortName>Search My Site</ShortName>
  <Description>Search My Site</Description>
  <Url type="text/html" method="get"
       template="http://my_site/{searchTerms}"/>
</OpenSearchDescription>

当用户在多功能框中按下Enter键时,网址中的字符串{searchTerms}将替换为用户键入的字符串。

您还可以通过添加另一个URL元素来包括建议服务,rel="suggestions"例如:

<Url type="application/json"
     rel="suggestions"
     template="http://my_site/suggest?q={searchTerms}"
     />

如果包括此选项,则多功能框将使用您的建议服务,根据用户的部分查询提供查询建议。

如果您的搜索框使用GET请求,则Chrome会为使用它的用户启用此功能。

如果您的站点上没有搜索页面,则此页面将无效。

向斯蒂芬提供初始链接的道具。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.