Como adicionar o suporte à omnibox-search do google chrome no seu site?

150

Quando insiro alguns URLs na omnibox do Google Chrome, vejo a mensagem "Pressione TAB para pesquisar em $ URL". Por exemplo, existem alguns sites russos habrahabr.ru ou yandex.ru. Ao pressionar TAB, você poderá pesquisar nesse site, não no seu mecanismo de pesquisa. Como tornar meu site capaz de fazer isso? Talvez eu precise escrever um código especial nas páginas do meu site?

Abzac
fonte
Então, como dizer ao Chrome que meu site está vinculado à pesquisa?
Abzac

Respostas:

204

O Chrome geralmente lida com isso através das preferências do usuário. (via chrome://settings/searchEngines)

No entanto, se você deseja implementar isso especificamente para seus usuários, é necessário adicionar um OSD (Open Search Description) ao seu site.

Utilizando o recurso OmniBox [TAB] do Google Chrome para / no site pessoal?

Você adiciona esse arquivo XML à raiz do seu site e vincula-o à sua <head>tag:

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

Agora, os visitantes da sua página terão automaticamente as informações de pesquisa do seu site inseridas nas configurações internas do Chrome em chrome://settings/searchEngines.

Exemplo de formato 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>

A parte importante é o <url>item. {searchTerms}será substituído pelo que o usuário pesquisar no omnibar.

Aqui está um link para o OpenSearch para obter mais informações.

element119
fonte
9
Observe que, diferentemente do Firefox, o Chrome descobrirá sua Descrição de pesquisa aberta apenas se você a colocar na raiz do seu site .
fácil
2
existe uma maneira de obter essa "omnibox-search" trabalhando com o firefox?
21715 JinSnow
Como encontrar o URL que leva diretamente à caixa de consulta no site de destino? (no google translate, por exemplo)
JinSnow
2
resposta para o google translate adicione esta ao seu mecanismo de pesquisa: translate.google.com/?source=osdd#auto|auto|%s
JinSnow 11/11/15
Adicionar motores de busca em chrome://settings/searchEngineseconomiza tempo! Obrigado!
Esdras Lopez
30

Implementando o suporte da omnibox com sugestões de pesquisa

A resposta dada por @ element119 funciona perfeitamente, mas aqui está um código ligeiramente aprimorado para oferecer suporte a sugestões de pesquisa e ao Suporte Mozilla.

Siga as etapas abaixo para implementar o suporte à omni box para o seu site.

  1. Salve o seguinte código como 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. Carregue o arquivo search.xml na raiz do seu site.

  2. Adicione o seguinte tag meta para do seu site <head>tag

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

Certifique-se de substituir os URLs do domínio pelo seu domínio.

Shan Eapen Koshy
fonte
1
É <SearchForm>ou <moz:SearchForm>? Parece que não encontro SearchFormos documentos do OpenSearch e todos os outros recursos que encontro on-line estão usando <moz:SearchForm>.
Niels R.