2009-08-22 1 views
12

Я думаю, что название объясняет все это, но я все равно пойду глубже в свой вопрос:Использование функции OmniBox [TAB] в Google Chrome для личного сайта?

Как я могу использовать функцию Omnibox [TAB] Chrome для моего сайта?

Как многие пользователи просили меня реализовать эту функцию на сайте, я исследовал OpenSearchDescription и был очень успешным в реализации с помощью панели поиска FireFox и IE7/IE8.

Однако реализация не совсем работа для [TAB] функция Chrome омнибокса ..

Можете ли вы помочь мне с этим?

Мой код 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> 

И это ссылка на файл Osd на моей странице:

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

Никогда не знал, что мы можем это сделать, спасибо, что случайно сообщили мне. – HyderA

+0

Возможный дубликат [Как добавить поддержку google chrome omnibox для вашего сайта?] (Http://stackoverflow.com/questions/7630144/how-to-add-google-chrome-omnibox-search-support-for- ваш сайт) –

ответ

4

Работа с OSD (OpenSearchDescription) работает под Google Chrome или IE7/IE8 не так сложно, как упомянуто, или что эти браузеры не поддерживают запросы POST ,

С небольшим количеством настроек, я нашел обходное решение всей проблемы.

Мой исходный код:

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

Этот код указывает непосредственно на страницу запроса и передает значение атрибута sString по запросу моей POST.

Это прекрасно работает на FireFox, но не очень хорошо работает на IE7/IE8 или Google Chrome (я еще не тестировал с Opera или Safari ..).


Изменение кода к следующей части:

<Url type="text/html" template="http://MySite.com/query.php?sString={searchTerms}"></Url> 
  • Удаление метода = "POST" из элемента
  • Замена /query.php с фактическим page: /query.php?sString={searchTerms}
  • Удаление теперь ненужными «<Param name="sString" value="{searchTerms}"/>»

Решенный мою проблему несовместимости с этими браузерами.

Все вызовы непосредственно направляются на страницу запроса, и даже первоначально это был запрос POST, теперь он работает как с IE7/IE8, так и с Google Chrome.

Еще раз спасибо adrianbanks за предоставление мне вашего xml-файла, который привел к решению!

+0

-1 Вы начинаете свой ответ с «Получение работы OpenSearchDescription в Google Chrome или IE7/IE8 не так сложно, как упоминалось, или что эти браузеры не поддерживают запросы POST», а затем вы переходите к описанию очень подробным образом, браузеры действительно не поддерживают поиск по запросу POST ». – AndreKR

8

Я сравнил то, что вы имеете против OpenSearchDescription на моей и я не понимаю, почему вы не работаете. Единственное реальное различие заключается в том, что вы используете POST для поиска, тогда как я использую GET. Согласно странице this, IE7 не поддерживает POST-запросы, поэтому, возможно, другие браузеры также не поддерживают POST.

Один на моем сайте определенно работает в IE8, Chrome 3.0 и FF 2.0+. Не стесняйтесь сравнивать их самостоятельно и посмотреть, можете ли вы определить разницу: opensearch.XML

+0

Большое спасибо за вашу большую помощь и предоставив свой собственный файл osd! Это привело к решению. Я напишу ответ, который решает проблему, также позволяет использовать POST в IE и Chrome :-)! –

 Смежные вопросы

  • Нет связанных вопросов^_^