Как добавить поддержку омнибокса-поиска в Google Chrome для своего сайта? - PullRequest
135 голосов
/ 03 октября 2011

При вводе некоторых URL-адресов в омнибоксе Google Chrome я вижу в нем сообщение «Нажмите TAB для поиска в $ URL».Например, есть несколько русских сайтов habrahabr.ru или yandex.ru.Когда вы нажмете TAB, вы сможете искать на этом сайте, а не в вашей поисковой системе.Как сделать так, чтобы мой сайт мог это делать?Может быть, мне нужно написать какой-нибудь специальный код на страницах моего сайта?

Ответы [ 2 ]

186 голосов
/ 03 октября 2011

Chrome обычно обрабатывает это через пользовательские настройки. (через chrome://settings/searchEngines)

Однако, если вы хотите реализовать это специально для ваших пользователей, вам нужно добавить OSD (Open Search Description) на ваш сайт.

Как использовать функцию Google Trome OmniBox [TAB] для / на персональном веб-сайте?

Затем вы добавляете этот XML-файл в корень вашего сайта и ссылаетесь на него в теге <head>:

<link rel="search" type="application/opensearchdescription+xml" title="Stack Overflow" href="/opensearch.xml" />

Теперь посетители вашей страницы автоматически размещают поисковую информацию вашего сайта во внутренних настройках Chrome по адресу chrome://settings/searchEngines.

Пример формата XML OpenSearchDescription

<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/" xmlns:moz="http://www.mozilla.org/2006/browser/search/">
<ShortName>Your website name (shorter = better)</ShortName>
<Description>
Description about your website search here
</Description>
<InputEncoding>UTF-8</InputEncoding>
<Image width="16" height="16" type="image/x-icon">your site favicon</Image>
<Url type="text/html" method="get" template="http://www.yoursite.com/search/?query={searchTerms}"/>
</OpenSearchDescription>

Важной частью является элемент <url>. {searchTerms} будет заменено на то, что пользователь ищет в омнибаре.

Вот ссылка на OpenSearch для получения дополнительной информации.

25 голосов
/ 21 сентября 2015

Реализация поддержки омнибокса с предложениями поиска

Ответ, данный @ element119, работает отлично, но здесь есть слегка подправленный код для поддержки предложений поиска, а также поддержки Mozilla.

Выполните следующие действия, чтобы реализовать поддержку omni box для вашего сайта.

  1. Сохраните следующий код как search.xml
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/" xmlns:moz="http://www.mozilla.org/2006/browser/search/">
  <script/>
  <ShortName>Site Name</ShortName>
  <Description>Site Description (eg: Search sitename)</Description>
  <InputEncoding>UTF-8</InputEncoding>
  <Image width="16" height="16" type="image/x-icon">Favicon url</Image>
  <Url type="application/x-suggestions+json" method="GET" template="http://suggestqueries.google.com/complete/search?output=firefox&amp;q={searchTerms}" />
  <Url type="text/html" method="GET" template="http://yoursite.com/?s={searchTerms}" />
  <SearchForm>http://yoursite.com/</SearchForm>
</OpenSearchDescription>
  1. Загрузить search.xml в корневой каталог вашего сайта.

  2. Добавьте следующий метатег к тегу <head> вашего сайта

<link rel="search" href="http://www.yoursite.com/search.xml" type="application/opensearchdescription+xml" title="You site name"/>

Обязательно замените URL домена вашим доменом.

...