Herstellung Nutzung von Google Chrome Omnibox [TAB] Eigenschaft für / auf persönliche Website?

StackOverflow https://stackoverflow.com/questions/1317051

Frage

Ich denke, der Titel alles erklärt, aber ich werde immer tiefer in meine Frage trotzdem:

Wie kann ich die Verwendung des Chrome Omnibox [TAB] Funktion für meine Website?

Wie viele Benutzer mich gebeten diese Funktion auf der Website zu implementieren, das habe ich Forschung auf dem Opensearchdescription und war sehr erfolgreich bei der Umsetzung mit dem FireFox und IE7 / IE8 Searchbar.

Doch die Umsetzung nicht ganz Arbeit für die Chrome Omnibox [TAB] Funktion ..

Können Sie mir helfen mit, dass?

Mein OSD.xml Code:

<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>

Und das ist der Link auf die OSD-Datei auf meiner Seite:

<link rel="search" type="application/opensearchdescription+xml" title="MySite" href="/opensearch.xml" />
War es hilfreich?

Lösung 2

Getting OSD (Opensearchdescription) arbeitet unter Google Chrome oder IE7 / IE8 ist nicht so schwierig, wie erwähnt, oder dass dieser Browser POST-Anfragen nicht unterstützen.

Mit einem wenig Feintuning, fand ich eine Abhilfe für das gesamte Problem.

Mein anfänglicher Code:

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

Dieser Code zeigt direkt auf die Abfrage-Seite und übergibt den Wert für das Attribut sString auf meiner POST-Anfrage.

Das ist perfekt auf FireFox funktioniert hat, aber nicht ganz gut auf IE7 / IE8 oder Google Chrome (habe ich nicht getestet mit Opera oder Safari noch ..).


Ändern Sie den Code auf das folgende:

<Url type="text/html" template="http://MySite.com/query.php?sString={searchTerms}"></Url>
  • Entfernen von method = "POST" aus dem Element
  • Ersetzen /query.php mit der aktuellen Seite Aufruf: /query.php?sString= {search}
  • die nun überflüssig "<Param name="sString" value="{searchTerms}"/>" Entfernen

gelöst mein Problem der Unvereinbarkeit mit diesen Browsern.

Alle Anrufe werden direkt an die Abfrageseite geleitet und auch war es zunächst ein POST-Anfrage, es jetzt auf beiden arbeiten IE7 / IE8 und Google Chrome.

Danke nochmal adrianbanks für mich mit dem XML-Datei bereitzustellen, die zu der Lösung geführt!

Andere Tipps

Ich habe verglichen, was Sie gegen die Opensearchdescription auf meiner eigenen Website haben und ich kann nicht sehen, warum Ihr nicht funktioniert. Der einzige wirkliche Unterschied ist, dass Sie POST verwenden zu suchen, während ich GET verwende. Nach dieser Seite, hat IE7 nicht POST-Anfragen unterstützen, kann es so sein, dass andere Browser auch tun nicht POST unterstützen.

Die auf meiner Seite funktioniert auf jeden Fall in IE8, Chrome 3.0 und FF 2.0+. Fühlen Sie sich frei, sie selbst zu vergleichen und sehen, ob Sie einen Unterschied erkennen können: opensearch.XML

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top