Muitos navegadores modernos possuem uma caixa de pesquisa no lado direito da barra de endereço e a pesquisa do Google é instalada por padrão. Conforme mostrado abaixo:
Na verdade, este é um aplicativo do OpenSearch. Contanto que você escreva o arquivo xml de microformato correspondente, poderá formular a caixa de pesquisa correspondente. Referindo-se ao documento de definição do OpenSearch, você pode obter basicamente o formato xml básico. Por exemplo, um arquivo xml de pesquisa típico pode ser especificado assim.
<?xml versão="1.0" codificação="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
<InputEncoding>utf-8</InputEncoding>
<ShortName>ShortName</ShortName>
<Descrição>Descrição</Descrição>
<Image type="image/vnd.microsoft.icon">favicon</Image>
<Url type="text/html" template="http://who.am.i/search?word={searchTerms}"/>
</OpenSearchDescription>
O arquivo xml acima é fácil de entender. Exceto pela raiz xml fixa, outras definições podem ser entendidas literalmente:
A escrita do formato xml do OpenSearch está completa. Para obter informações detalhadas, consulte o documento de definição do OpenSearch. A seguir, precisamos adicionar esta pesquisa à página. Existem basicamente duas maneiras. Eles servem para adicionar tags de link no cabeçalho da página (semelhante ao RSS) e adicioná-los usando Javascript (como definir um botão para acionar). Adicionar tags de link é muito simples, o formato é o seguinte
<link rel="search" type="application/opensearchdescription+xml"
href="http://who.am.i/search.xml" title="ShortName" />
Semelhante ao RSS, rel e type são fixos. Especificamos principalmente href (o caminho da url do xml acima, por segurança, usamos o caminho absoluto, ou seja, começando com http://) e title (ou seja, o caminho curto). título da pesquisa). Desta forma, ao abrir esta página no Explorer e no Firefox, você poderá ver o menu correspondente, conforme mostrado na figura:
É mais problemático adicionar usando Javascript (talvez a situação seja muito melhor agora). Usamos principalmente a função de extensão do navegador. Existe um parâmetro window.external.AddSearchProvider no Explorer (documentação detalhada). O método de chamada típico é o seguinte
window.external.AddSearchProvider('http://who.am.i/search.xml');
O link no parâmetro é o conteúdo do link acima. Disponível no Firefox
window.sidebar.addSearchEngine(
"http://who.am.i/search.xml", /* URL do mecanismo */
"favicon.ico", /* URL do ícone */
"ShortName", /* nome do mecanismo */
"Descrição"); /* nome da categoria */
Parâmetros e exemplos são descritos no código de exemplo (documentação oficial). É importante notar que o Firefox2 e versões posteriores são "compatíveis" com o método de chamada window.external.AddSearchProvider do Explorer (detalhes). Então nosso código Javascript correspondente pode ser escrito assim (para ser compatível com versões anteriores ao Firefox2, adicione else se julgar, se achar que não é necessário, você não pode adicioná-lo)
função addEngine(){
if (window.external || window.external.AddSearchProvider) {
window.external.AddSearchProvider('http://who.am.i/search.xml');
} else if (window.sidebar && window.sidebar.addSearchEngine) {
window.sidebar.addSearchEngine(
"http://who.am.i/search.xml",
"favicon.ico", /* URL do ícone */
"ShortName", /* nome do mecanismo */
"Descrição"); /* nome da categoria */
}}
Desta forma, você pode registrar esta função no evento de clique de um link ou botão, e uma caixa de confirmação aparecerá conforme mostrado na figura, após o usuário clicar em confirmação, ela será adicionada à caixa de pesquisa do navegador.