Domanda

Credo che il titolo spiega tutto, ma sto andando più in profondità la mia domanda in ogni caso:

Come faccio a far uso della caratteristica del Chrome Omnibox [TAB] per il mio sito web?

Come molti utenti mi hanno chiesto di attuare tale funzione sul sito, ho fatto ricerche sul OpenSearchDescription e ha avuto molto successo nella realizzazione con l'Firefox e IE7 / IE8 Searchbar.

Tuttavia, l'implementazione non ha funzionato del tutto per la funzione Chrome Omnibox [TAB] ..

Mi puoi aiutare in questo?

Il mio codice 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>

E questo è il link al file OSD sulla mia pagina:

<link rel="search" type="application/opensearchdescription+xml" title="MySite" href="/opensearch.xml" />
È stato utile?

Soluzione 2

Come OSD (OpenSearchDescription) lavorare sotto Google Chrome o IE7 / IE8 non è così difficile come si è detto, o che questi browser non supportano le richieste POST.

Con un po 'di tweaking, ho trovato una soluzione per l'intero problema.

Il mio codice iniziale:

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

Questo codice punti direttamente alla pagina di query e passa il valore per l'attributo sString su mia richiesta POST.

che funziona perfettamente su Firefox, ma non abbastanza funziona bene su IE7 / IE8 o Google Chrome (non ho la prova con Opera o Safari ancora ..).


La modifica del codice per il seguente pezzo:

<Url type="text/html" template="http://MySite.com/query.php?sString={searchTerms}"></Url>
  • Rimozione method = "POST" dall'elemento
  • Sostituzione /query.php con la chiamata pagina effettiva: /query.php?sString= {searchTerms}
  • Rimozione del "<Param name="sString" value="{searchTerms}"/>" ora non necessaria

risolto il mio problema di incompatibilità con questi browser.

Tutte le chiamate vengono direttamente diretti alla pagina di ricerca e persino inizialmente era una richiesta POST, ora lavorare su entrambi IE7 / IE8 e Google Chrome.

Grazie adrianbanks ancora per avermi fornito il file XML che ha portato alla soluzione!

Altri suggerimenti

Ho rispetto quello che hai contro l'OpenSearchDescription sul mio sito e non riesco a vedere il motivo per cui il vostro non funziona. L'unica vera differenza è che si sta utilizzando per la ricerca POST mentre io sto usando GET. Secondo questa pagina , IE7 non supporta le richieste POST, quindi potrebbe essere che gli altri browser anche fare non sostenere POST.

L'uno sul mio sito funziona sicuramente in IE8, Chrome 3.0 e FF 2.0+. Sentitevi liberi di confrontarli te stesso e vedere se è possibile individuare una differenza: opensearch.XML

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top