Как создать функцию поиска по сайту в адресной строке Chrome?

11

Когда вы заходите на stackoverflow.com в Google Chrome и ставите пробел перед последним символом, адресная строка меняется на ту, что на моем снимке экрана ниже.

После этого вы можете нажать Tab , и вы можете напечатать что - нибудь, и нажимая клавишу ВВОД приведет вас к странице поиска с вашего поиска: https://stackoverflow.com/search?q=anything.

Как я могу сделать то же самое для моего сайта?

Я самый глупый человек
источник
Я предполагаю, что у них уже настроен поиск по сайту, и они просто хотят настроить Chrome так, как это делает StackOverflow. Если это так, то это очень ответственный вопрос, не слишком широкий.
Стивен Остермиллер
3
Похоже, кто-то на форумах по продуктам Google понял это: productforums.google.com/forum/#!msg/chrome/8EFOmC6pNLs/…
Стивен Остермиллер
Дамит, ты хочешь добавить поиск по сайту из адресной строки или просто поиск по сайту с автозаполнением?
Скотт С. Уилсон
1
Сейчас я слишком ленив, чтобы написать хороший ответ, поэтому вот две ссылки: opensearch.org/Documentation/Frequently_asked_questions и о реализации этого см .: opensearch.org/Specifications/OpenSearch/…
Оскар Ског,
@ StefhenOstermiller Я перечитал вопрос. Виноват! Я имел в виду реализацию поиска по сайту и как-то упустил истинную природу вопроса. Это хороший вопрос. Ура !!
closetnoc

Ответы:

6

Предполагая, что у вас есть функция поиска на вашем сайте, вы можете воспользоваться функциональностью OpenSearch в Chrome.

Взято из документации 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>

Когда пользователь нажимает ввод в омнибоксе, строка {searchTerms} в URL заменяется строкой, введенной пользователем.

Вы также можете включить службу предложений, добавив еще один элемент URL, rel="suggestions"например:

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

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

Если в окне поиска используется запрос GET, Chrome включит эту функцию для пользователей, которые ее используют.

Если на вашем сайте нет страницы поиска, это не сработает.

Реквизит Стивена для начальной ссылки.

Жаф - Бен Дугид
источник