Question

Je pense que le titre explique tout cela, mais je vais plus loin dans ma question quand même:

Comment puis-je utiliser la fonction Omnibox de Chrome [TAB] pour mon site Web?

Comme de nombreux utilisateurs me ont demandé de mettre en œuvre cette fonctionnalité sur le site, je l'ai fait des recherches sur la OpenSearchDescription et a été un grand succès dans la mise en œuvre avec le FireFox et IE7 / IE8 Searchbar.

Pourtant, la mise en œuvre n'a pas fonctionné tout à fait pour la fonctionnalité Chrome Omnibox [TAB] ..

Pouvez-vous me aider?

Mon code OSD.xml:

<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"
                       xmlns:moz="http://www.mozilla.org/2006/browser/search/">
<ShortName>MySite</ShortName>
<Description>My Site</Description>
<InputEncoding>UTF-8</InputEncoding>
<Image width="16" height="16" type="image/x-icon">http://MySite.com/favicon.ico</Image>
<Url type="application/x-suggestions+json" method="GET"
     template="http://ff.search.yahoo.com/gossip?output=fxjson&amp;command={searchTerms}" />
<Url type="text/html" method="POST" template="http://MySite.com/query.php">
  <Param name="sString" value="{searchTerms}"/>
</Url>
<Url type="application/x-suggestions+json" template="suggestionURL"/>
<moz:SearchForm>http://www.MySite.com</moz:SearchForm>
</OpenSearchDescription>

Et voici le lien vers le fichier osd sur ma page:

<link rel="search" type="application/opensearchdescription+xml" title="MySite" href="/opensearch.xml" />
Était-ce utile?

La solution 2

Obtenir OSD (OpenSearchDescription) travailler sous Google Chrome ou IE7 / IE8 est pas aussi difficile que mentionné ou que ces navigateurs ne prennent pas en charge les requêtes POST.

Avec un peu de peaufinage, je trouve une solution à l'ensemble du problème.

Mon code initial:

<Url type="text/html" method="POST" template="http://MySite.com/query.php">
  <Param name="sString" value="{searchTerms}"/>
</Url>

Ce point de code directement à la page de requête et transmet la valeur de l'attribut sChaîne sur ma requête POST.

Cela fonctionne parfaitement sur FireFox, mais ne fonctionne pas très bien sur IE7 / IE8 ou Google Chrome (je n'ai pas testé avec Opera ou Safari encore ..).


modifier le code à la pièce suivante:

<Url type="text/html" template="http://MySite.com/query.php?sString={searchTerms}"></Url>
  • Retrait method = "POST" dans l'élément
  • Remplacement /query.php avec l'appel réel de la page: {/query.php?sString= searchTerms}
  • Retrait de la désormais inutile "<Param name="sString" value="{searchTerms}"/>"

Il est résolu mon problème d'incompatibilité avec ces navigateurs.

Tous les appels sont dirigés directement vers la page de requête et même il a d'abord été une requête POST, il fonctionne maintenant sur les deux IE7 / IE8 et Google Chrome.

Merci adrianbanks encore pour me fournir votre fichier xml qui a conduit à la solution!

Autres conseils

Je l'ai comparé ce que vous avez contre le OpenSearchDescription sur mon propre site et je ne vois pas pourquoi le vôtre ne fonctionne pas. La seule différence est que vous utilisez POST pour la recherche alors que je suis en utilisant GET. Selon cette page , IE7 ne prend pas en charge les requêtes POST, il se peut que d'autres navigateurs font également POST ne supporte pas.

L'un sur mon site fonctionne vraiment dans IE8, Chrome 3.0 et FF 2.0+. Ne hésitez pas à les comparer vous-même et voir si vous pouvez repérer une différence: opensearch.XML

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top