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

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

3 ответа

Решение

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

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

Использовать функцию Google Chrome 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 для получения дополнительной информации.

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

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

Следуйте приведенным ниже инструкциям, чтобы реализовать поддержку omnibox для вашего сайта.

  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-адреса доменов своим доменом.

Google Chrome больше не поддерживает автоматическое обнаружение поиска по конкретному сайту

Твиттер-аккаунт @googlechrome:
мы сделали так, чтобы новые ярлыки поиска по сайту больше не добавлялись автоматически в панель поиска Chrome. Мы сделали это, чтобы не загромождать его предложениями поиска по сайту, которые люди могут не использовать.

Этот ответ изначально был предоставлен в комментарии (спасибо user96855 ), но я публикую его повторно, чтобы его было легче найти (например, я не видел этот комментарий, когда изначально искал ответы).

Другие вопросы по тегам