Comment ajouter la prise en charge de la recherche omnibox Google Chrome pour votre site?

150

Lorsque j'entre certaines URL dans l'omnibox de Google Chrome, je vois le message "Appuyez sur TAB pour rechercher dans $ URL". Par exemple, il existe des sites russes habrahabr.ru ou yandex.ru. Lorsque vous appuyez sur TAB, vous pouvez effectuer une recherche dans ce site, pas dans votre moteur de recherche. Comment faire en sorte que mon site puisse le faire? Peut-être ai-je besoin d'écrire un code spécial dans les pages de mon site?

Abzac
la source
Alors, comment dire à Chrome que mon site est un moteur de recherche?
Abzac

Réponses:

204

Chrome gère généralement cela via les préférences de l'utilisateur. (via chrome://settings/searchEngines)

Cependant, si vous souhaitez l'implémenter spécifiquement pour vos utilisateurs, vous devez ajouter un OSD (Open Search Description) à votre site.

Utiliser la fonction OmniBox [TAB] de Google Chrome pour / sur un site Web personnel?

Vous ajoutez ensuite ce fichier XML à la racine de votre site, et créez un lien vers celui-ci dans votre <head>balise:

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

Désormais, les visiteurs de votre page verront automatiquement les informations de recherche de votre site placées dans les paramètres internes de Chrome à l'adresse chrome://settings/searchEngines.

Exemple de format 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>

La partie importante est l' <url>élément. {searchTerms}sera remplacé par ce que l'utilisateur recherche dans l'omnibar.

Voici un lien vers OpenSearch pour plus d'informations.

élément119
la source
9
Notez que contrairement à Firefox, Chrome ne découvrira votre description de recherche ouverte que si vous la placez à la racine de votre site Web .
varepsilon
2
existe-t-il un moyen de faire fonctionner cette "recherche omnibox" avec Firefox?
JinSnow
Comment trouver l'url qui mène directement à la zone de requête sur le site cible? (dans google translate par exemple)
JinSnow
2
answer for google translate ajoutez celui-ci à votre moteur de recherche: translate.google.com/?source=osdd#auto|auto|%s
JinSnow
L'ajout de moteurs de recherche chrome://settings/searchEnginesest un gain de temps! Merci!
Esdras Lopez
30

Implémentation de la prise en charge de l'omnibox avec des suggestions de recherche

La réponse donnée par @ element119 fonctionne parfaitement, mais voici un code légèrement modifié pour prendre en charge les suggestions de recherche ainsi que le support Mozilla.

Suivez les étapes ci-dessous pour implémenter la prise en charge de l'Omni Box pour votre site.

  1. Enregistrez le code suivant sous le nom 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. Téléchargez search.xml à la racine de votre site.

  2. Ajouter la balise meta suivante pour votre site <head>tag

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

Assurez-vous de remplacer les URL de domaine par votre domaine.

Shan Eapen Koshy
la source
1
Est-ce <SearchForm>ou <moz:SearchForm>? Je ne semble pas trouver SearchFormdans la documentation OpenSearch et toutes les autres ressources que je trouve en ligne utilisent <moz:SearchForm>.
Niels R.