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

150

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

Abzac
источник
Итак, как сказать Chrome, что мой сайт является поисковым?
Абзак

Ответы:

204

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

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

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

Затем вы добавляете этот 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
источник
9
Обратите внимание, что в отличие от Firefox, Chrome обнаружит ваше описание открытого поиска только в том случае, если вы поместите его в корневой каталог вашего сайта .
Варепсилон
2
Есть ли способ заставить этот "омнибокс-поиск" работать с Firefox?
JinSnow
Как найти URL, который ведет непосредственно к окну запроса на целевом сайте? (в гугл переводе например)
JinSnow
2
ответ для гугл-переводчика добавьте его в свою поисковую систему: translate.google.com/?source=osdd#auto|auto|%s
JinSnow
Добавление поисковых систем в chrome://settings/searchEnginesэто экономит время! Спасибо!
Эсдрас Лопес
30

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

Ответ, данный @ 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-адреса доменов своим доменом.

Шань Иапен Коши
источник
1
Это <SearchForm>или <moz:SearchForm>? Похоже, я не могу найти SearchFormв документации OpenSearch и всех других ресурсах, которые я нахожу онлайн, которые я использую <moz:SearchForm>.
Нильс Р.