Pergunta

Eu acho que o título explica tudo, mas eu estou indo mais fundo na minha pergunta de qualquer maneira:

Como posso fazer uso do recurso do Chrome Omnibox [TAB] para o meu site?

Como muitos usuários me pediu para implementar esse recurso no site, eu fiz pesquisa sobre o OpenSearchDescription e foi muito bem sucedida na implementação com o Firefox e IE7 / IE8 Searchbar.

No entanto, a implementação não funcionou muito bem para o recurso Chrome Omnibox [TAB] ..

Você pode me ajudar com isso?

código My 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 este é o link para o arquivo OSD na minha página:

<link rel="search" type="application/opensearchdescription+xml" title="MySite" href="/opensearch.xml" />
Foi útil?

Solução 2

Obter OSD (OpenSearchDescription) trabalho sob Google Chrome ou IE7 / IE8 não é tão difícil como mencionado ou que esses navegadores não suportam solicitações POST.

Com um pouco de ajustes, eu encontrei uma solução para todo o problema.

Meu código inicial:

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

Este código pontos diretamente para a página de consulta e passa o valor para o atributo sString no meu pedido POST.

Isso funciona perfeitamente no Firefox, mas não chega a trabalhar bem no IE7 / IE8 ou o Google Chrome (eu não fiz teste com o Opera ou Safari ainda ..).


A alteração do código para o seguinte peça:

<Url type="text/html" template="http://MySite.com/query.php?sString={searchTerms}"></Url>
  • Remover method = "POST" do elemento
  • Substituir /query.php com a chamada página real: /query.php?sString= {searchTerms}
  • Retirar o "<Param name="sString" value="{searchTerms}"/>" agora desnecessário

Resolvido meu problema de incompatibilidade com esses navegadores.

Todas as chamadas estão diretamente dirigido à página de consulta e mesmo que inicialmente era um pedido POST, agora trabalho em ambos IE7 / IE8 e Google Chrome.

Obrigado novamente adrianbanks para fornecer-me com o seu arquivo xml que levou à solução!

Outras dicas

Eu comparei o que você tem contra o OpenSearchDescription em meu próprio site e eu não posso ver porque o seu não está funcionando. A única diferença real é que você está usando POST para procurar enquanto eu estou usando GET. De acordo com a desta página , IE7 não suporta solicitações POST, por isso pode ser que outros navegadores também fazem não suporta POST.

A um no meu site definitivamente funciona no IE8, Chrome 3.0 e FF 2.0+. Sinta-se livre para compará-los você mesmo e veja se você pode manchar uma diferença: opensearch.XML

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top