2009-08-22 15 views
12

Wydaje mi się, że tytuł wyjaśnia wszystko, ale w każdym razie sięgam głębiej w moje pytanie:Korzystanie z funkcji OmniBox [TAB] Google Chrome na prywatnej stronie internetowej?

Jak mogę skorzystać z funkcji Omnibox w Chrome [TAB] w mojej witrynie?

Ponieważ wielu użytkowników poprosiło mnie o zaimplementowanie tej funkcji na stronie, zrobiłem badania na temat OpenSearchDescription i odniosłem duży sukces w implementacji za pomocą paska wyszukiwania FireFox i IE7/IE8.

Jednak realizacja nie dość pracy dla Chrome omniboksie [TAB] funkcji ..

możesz mi pomóc z tym?

Mój kod 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> 

I to jest link do pliku OSD na mojej stronie:

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

Nigdy nie wiedziałem, że możemy to zrobić, dziękuję za przypadkowe poinformowanie mnie. – HyderA

+0

możliwy duplikat [Jak dodać obsługę przeglądarki Google Chrome omnibox-search dla swojej witryny?] (Http://stackoverflow.com/questions/7630144/how-to-add-google-chrome-omnibox-search-support-for- twoja strona) –

Odpowiedz

4

Uzyskiwanie pracy OSD (OpenSearchDescription) w Google Chrome lub IE7/IE8 nie jest tak trudne jak wspomniano lub te przeglądarki nie obsługują żądań POST .

Z odrobiną poprawek, znalazłem obejście całego problemu.

Mój początkowy kod:

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

punkty niniejszym Kodeksie bezpośrednio do strony zapytania i przekazuje wartość atrybutu sString na moim żądania POST.

Działa to doskonale na FireFox, ale nie działa dobrze na IE7/IE8 lub Google Chrome (nie testowałem jeszcze Opery ani Safari).


Zmiana kodu w następującej części:

<Url type="text/html" template="http://MySite.com/query.php?sString={searchTerms}"></Url> 
  • Usuwanie method = "POST" z elementu
  • Wymiana /query.php z rzeczywistą wywołanie strony: /query.php?sString={searchTerms}
  • usuwając teraz zbędne "<Param name="sString" value="{searchTerms}"/>"

Rozwiązane mój problem niezgodności z tymi przeglądarkami.

Wszystkie połączenia są bezpośrednio kierowane do strony kwerendy, a nawet początkowo było to żądanie POST, teraz działa zarówno na IE7/IE8 i Google Chrome.

Jeszcze raz dziękuję adrianbanks za dostarczenie mi pliku xml, który doprowadził do rozwiązania!

+0

-1 Zaczynasz swoją odpowiedź, pisząc: "Uzyskiwanie pracy OpenSearchDescription w przeglądarce Google Chrome lub IE7/IE8 nie jest tak trudne, jak wspomniano, lub że te przeglądarki nie obsługują żądań POST", a następnie przystępne opisywanie w bardzo przeglądarki rzeczywiście nie obsługują wyszukiwania według żądania POST ". – AndreKR

8

Mam porównaniu co masz przeciwko OpenSearchDescription na własną rękę i nie rozumiem, dlaczego twój nie działa. Jedyną różnicą jest to, że używasz POST do wyszukiwania, podczas gdy korzystam z GET. Według strony this, IE7 nie obsługuje żądań POST, więc może być tak, że inne przeglądarki również nie obsługują POST.

Ten na mojej stronie zdecydowanie działa w IE8, Chrome 3.0 i FF 2.0+. Możesz je porównać samemu i sprawdzić, czy możesz zauważyć różnicę: opensearch.XML

+0

Bardzo dziękuję za pomoc i dostarczenie własnego pliku osd! Doprowadziło to do rozwiązania. Napiszę odpowiedź, która rozwiązuje problem, pozwala również na użycie POST w IE i Chrome :-)! –

Powiązane problemy