Как добавить поддержку омнибокса-поиска в 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 для вашего сайта.
- Сохраните следующий код как 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&q={searchTerms}" />
<Url type="text/html" method="GET" template="http://yoursite.com/?s={searchTerms}" />
<SearchForm>http://yoursite.com/</SearchForm>
</OpenSearchDescription>
Загрузите search.xml в корневой каталог вашего сайта.
Добавьте следующий метатег на ваш сайт
<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 ), но я публикую его повторно, чтобы его было легче найти (например, я не видел этот комментарий, когда изначально искал ответы).