---
title: Tworzenie wtyczek OpenSearch dla Firefoksa
slug: Web/OpenSearch
tags:
  - Dodatki
  - OpenSearch
  - Wszystkie_kategorie
  - Wtyczki_wyszukiwarek
translation_of: Web/OpenSearch
original_slug: Tworzenie_wtyczek_OpenSearch_dla_Firefoksa
---
<p> </p>
<h2 id="OpenSearch" name="OpenSearch">OpenSearch</h2>
<p><a href="pl/Firefox_2">Firefox 2</a> obsługuje format opisu wtyczek wyszukiwarek <a class="external" href="http://opensearch.org/">OpenSearch</a>. Wtyczki korzystające ze <a class="external" href="http://www.opensearch.org/Specifications/OpenSearch/1.1#OpenSearch_description_document">składni OpenSearch</a> są zgodne z IE 7 i Firefoksem. Z tego powodu są formatem zalecanym do stosowania na stronach WWW.</p>
<p>Firefox obsługuje także dodatkowe możliwości spoza <a class="external" href="http://www.opensearch.org/Specifications/OpenSearch/1.1#OpenSearch_description_document">specyfikacji OpenSearch</a>, takie jak podpowiedzi wyszukiwania i element <code>SearchForm</code>. Niniejszy artykuł skupia się na tworzeniu wtyczek zgodnych z OpenSearch, ale wykorzystujących także i te dodatkowe możliwości.</p>
<p>Dostępność plików opisu OpenSearch może być także ogłaszana w sposób opisany w podrozdziale <a href="#Automatyczne_wykrywanie_wtyczek_wyszukiwarek">Automatyczne wykrywanie wtyczek wyszukiwarek</a>, mogą być także instalowane w sposób programowy, tak jak to opisano w artykule <a href="pl/Dodawanie_wyszukiwarek_ze_stron_WWW">Dodawanie wyszukiwarek ze stron WWW</a>.</p>
<h2 id="Plik_opisu_OpenSearch" name="Plik_opisu_OpenSearch">Plik opisu OpenSearch</h2>
<p>Plik XML opisujący wyszukiwarkę ma prostą budowę, taką, jak przedstawiona w poniższym szablonie. Pogrubione fragmenty muszą być dostosowane do wymogów konkretnej wyszukiwarki.</p>
<pre class="eval">&lt;OpenSearchDescription xmlns="<span class="nowiki">http://a9.com/-/spec/opensearch/1.1/</span>"
                       xmlns:moz="<span class="nowiki">http://www.mozilla.org/2006/browser/search/</span>"&gt;
&lt;ShortName&gt;<b>nazwaWyszukiwarki</b>&lt;/ShortName&gt;
&lt;Description&gt;<b>opisWyszukiwarki</b>&lt;/Description&gt;
&lt;InputEncoding&gt;<b>kodowanieWejściowe</b>&lt;/InputEncoding&gt;
&lt;Image width="16" height="16"&gt;data:image/x-icon;base64,<b>daneObrazu</b>&lt;/Image&gt;
&lt;Url type="text/html" method="<b>metoda</b>" template="<b>adresURLWyszukiwania</b>"&gt;
  &lt;Param name="<b>nazwaParam1</b>" value="<b>wartośćParam1</b>"/&gt;
  ...
  &lt;Param name="<b>nazwaParamN</b>" value="<b>wartośćParamN</b>"/&gt;
&lt;/Url&gt;
&lt;Url type="application/x-suggestions+json" template="<b>adresURLPodpowiedzi</b>"/&gt;
&lt;moz:SearchForm&gt;<b>adresURLFormularza</b>&lt;/moz:SearchForm&gt;
&lt;/OpenSearchDescription&gt;
</pre>
<dl>
  <dt>
    <b>ShortName</b></dt>
  <dd>
    Krótka nazwa wyszukiwarki.</dd>
</dl>
<dl>
  <dt>
    <b>Description</b></dt>
  <dd>
    Zwięzły opis wyszukiwarki.</dd>
</dl>
<dl>
  <dt>
    <b>InputEncoding</b></dt>
  <dd>
    Kodowanie znaków stosowane przy wprowadzaniu danych do wyszukiwarki.</dd>
</dl>
<dl>
  <dt>
    <b>Image</b></dt>
  <dd>
    Zakodowana przy użyciu algorytmu Base-64 ikona o wymiarach 16x16 reprezentująca wyszukiwarkę. Narzędzie ułatwiające tworzenie danych do umieszczenia w tym elemencie (kodowania plików algorytmem Base64) można znaleźć na stronie: <a class="external" href="http://software.hixie.ch/utilities/cgi/data/data">The data: URI kitchen</a>.</dd>
</dl>
<dl>
  <dt>
    <b>Url</b></dt>
  <dd>
    Określa adres lub adresy URL wykorzystywane do wyszukiwania. Atrybut <code>method</code></dd>
</dl>
<p>decyduje, czy do wysłania zapytania ma być stosowana metoda <code>GET</code> czy <code>POST</code>. Atrybut określa podstawowy adres URL dla zapytania wyszukiwarki.</p>
<dl>
  <dd>
    <div class="note">
      <b>Uwaga:</b> Internet Explorer 7 nie obsługuje żądań <code>POST</code>.</div>
  </dd>
</dl>
<dl>
  <dd>
    Firefox obsługuje dwa typy elementów Url:</dd>
</dl>
<ul>
  <li><code>type="text/html"</code> – do określenia adresu URL samego zapytania wyszukiwarki</li>
  <li><code>type="application/x-suggestions+json"</code> – do określenia adresu URL z podpowiedziami wyszukiwania.</li>
</ul>
<dl>
  <dd>
    W adresach obu typów tekst <code>{searchTerms}</code> zostanie zastąpiony przez wartości wprowadzone przez użytkownika do paska wyszukiwania. Inne obsługiwane parametry dynamiczne wyszukiwania można znaleźć w rozdziale <a class="external" href="http://www.opensearch.org/Specifications/OpenSearch/1.1/Draft_3#OpenSearch_1.1_parameters">OpenSearch 1.1 parameters</a> specyfikacji OpenSearch.</dd>
</dl>
<dl>
  <dd>
    Podczas przeglądania
    <i>
      oficjalnej specyfikacji OpenSearch</i>
    , a konkretnie elementu Url, można zauważyć, że Mozilla w pewnym stopniu nie przestrzega specyfikacji, używając atrybutu <code>method</code> i znacznika <code>Param</code> bez odpowiedniej przestrzeni nazw. Jeśli chcemy zachować zgodność zarówno ze specyfikacją, jak i z Mozillą, możemy bezpiecznie używać obu sposobów równolegle, tzn. używać atrybutu <code>method</code> i jego wersji z przestrzenią nazw obok siebie.</dd>
</dl>
<dl>
  <dd>
    Dla zapytań o podpowiedzi wyszukiwania, podany szablon adresu URL wykorzystywany jest do pobrania listy podpowiedzi w formacie JavaScript Object Notation (JSON). Szczegóły na temat implementacji podpowiedzi wyszukiwania po stronie serwera można znaleźć w artykule <a href="pl/Wsparcie_dla_podpowiedzi_wyszukiwania_w_wyszukiwarkach">Wsparcie dla podpowiedzi wyszukiwania w wyszukiwarkach</a>.</dd>
</dl>
<p><img alt="Image:SearchSuggestionSample.jpg"></p>
<dl>
  <dt>
    <b>Param</b></dt>
  <dd>
    Parametry, które muszą zostać przekazane wraz z zapytaniem, w postaci par klucz/wartość. Przy określaniu tych wartości można użyć <code>{searchTerms}</code>, by wstawić w to miejsce wyszukiwane słowa wprowadzone przez użytkownika w pasku wyszukiwania.</dd>
  <dd>
    <div class="note">
      <b>Uwaga:</b> Internet Explorer 7 nie obsługuje tego elementu.</div>
  </dd>
</dl>
<dl>
  <dt>
    <b>SearchForm</b></dt>
  <dd>
    Adres URL strony z wyszukiwarką na danej witrynie. (Niejako adres strony, którą wtyczka wyszukiwarki zastępuje - przyp. tłum.). W ten sposób Firefox umożliwia użytkownikowi bezpośrednie otwarcie danej witryny.</dd>
</dl>
<div class="note">
  <b>Uwaga:</b> Ten element nie jest częścią specyfikacji OpenSearch, jest związany z konkretną funkcją Firefoksa. Z tej przyczyny poprzedzony został przedrostkiem przestrzeni nazw XML "<code>moz:</code>", aby inne aplikacje, nie obsługujące tego elementu, mogły go zignorować.</div>
<h2 id="Automatyczne_wykrywanie_wtyczek_wyszukiwarek" name="Automatyczne_wykrywanie_wtyczek_wyszukiwarek">Automatyczne wykrywanie wtyczek wyszukiwarek</h2>
<p>Witryna oferująca wtyczkę wyszukiwarki może ogłosić jej dostępność, umożliwiając użytkownikom Firefoksa na łatwą i szybką instalację wtyczki.</p>
<p>Aby skorzystać z tej funkcji, wystarczy po prostu w części <code>&lt;head&gt;</code> strony internetowej dodać jedną linię:</p>
<pre class="eval">&lt;link rel="search" type="application/opensearchdescription+xml" title="<i>tytułWyszukiwarki</i>" href="<i>adresURLWtyczki</i>"&gt;
</pre>
<p>Pochylony tekst należy zastąpić, jak opisano poniżej:</p>
<dl>
  <dt>
    <b>tytułWyszukiwarki</b></dt>
  <dd>
    Nazwa wyszukiwarki, np. "Yahoo! Search". Wartość ta powinna być zgodna z wartością ShortName w pliku wtyczki.</dd>
</dl>
<dl>
  <dt>
    <b>adresURLWtyczki</b></dt>
  <dd>
    Adres URL do pliku XML wtyczki wyszukiwania, która ma zostać pobrana przez przeglądarkę.</dd>
</dl>
<p>Jeśli witryna oferuje szereg wtyczek wyszukiwania, można pozwolić na automatyczne wykrywanie ich wszystkich - przez umieszczenie tylu znaczników <code>link</code>, ile wtyczek chcemy zaoferować, np.:</p>
<pre class="eval">&lt;link rel="search" type="application/opensearchdescription+xml" title="MySite: wg autora" href="<a class="external" href="http://www.mysite.com/mysiteauthor.xml" rel="freelink">http://www.mysite.com/mysiteauthor.xml</a>"&gt;
&lt;link rel="search" type="application/opensearchdescription+xml" title="MySite: wg tytułu" href="<a class="external" href="http://www.mysite.com/mysitetitle.xml" rel="freelink">http://www.mysite.com/mysitetitle.xml</a>"&gt;
</pre>
<p>W ten sposób witryna oferuje osobne wtyczki pozwalające na przeszukanie wg autorów i tytułów.</p>
<h2 id="Rozwi.C4.85zywanie_problem.C3.B3w_.E2.80.93_wskaz.C3.B3wki" name="Rozwi.C4.85zywanie_problem.C3.B3w_.E2.80.93_wskaz.C3.B3wki">Rozwiązywanie problemów – wskazówki</h2>
<p>Jeśli w pliku XML wtyczki jest błąd, mogą wystąpić problemy podczas instalacji wykrytej wtyczki w Firefoksie 2. Informacja o błędzie może nie być zbyt dokładna, dlatego poniżej podajemy kilka wskazówek, które powinny pomóc w takiej sytuacji.</p>
<ul>
  <li>Wtyczka wyszukiwarki XML musi być prawidłowo uformowana. Sprawdzić to można np. otwierając plik wyszukiwarki bezpośrednio w Firefoksie. Ampersandy („&amp;”) w szablonach adresów URL muszą występować w postaci encji <code>&amp;amp;</code>, a każdy znacznik musi być zamknięty, albo przez ukośnik na końcu, albo przez odpowiedni znacznik zamykający.</li>
  <li>Atrybut <code>xmlns</code> jest ważny; w sytuacji jego braku można otrzymać komunikat o błędzie: "Firefox nie mógł pobrać wtyczki wyszukiwarki z: (adres URL)".</li>
  <li><b>Konieczne</b> jest dołączenie adresu URL typu <code>text/html</code> &amp;ndashl wtyczki zawierające tylko adresy typu Atom lub <a href="pl/RSS">RSS</a> (poprawne, ale nie obsługiwane obecnie przez Firefoksa) również spowodują wyświetlenie powyższego komunikatu błędu.</li>
  <li>Zdalne ikony witryn („favicons”) nie mogą być większe niż 10 KB (zob. {{ Bug(361923) }}).</li>
</ul>
<p>Ponadto usługa wtyczek wyszukiwarek zapewnia dostęp do mechanizmu dziennika, który może być przydatny dla twórców wtyczek. Aby skorzystać z dziennika, należy na stronie
  <i>
    about:config</i>
  ustawić wartość opcji '<code>browser.search.log</code>' na <code>true</code>. Informacje dziennika będą pojawiać się w <a href="pl/Konsola_b%c5%82%c4%99d%c3%b3w">Konsoli błędów</a> Firefoksa (Narzędzia-&gt;Konsola błędów) przy dodawaniu wtyczek.</p>
<h2 id="Literatura" name="Literatura">Literatura</h2>
<ul>
  <li><a class="external" href="http://opensearch.org/">Dokumentacja OpenSearch</a>, <a class="external" href="http://www.opensearch.org/Specifications/OpenSearch/Extensions/Parameter/1.0">OpenSearch Documentation about the Url and Param element</a></li>
  <li>Technorati.com has a <a class="external" href="http://technorati.com/osd.xml">working osd.xml</a></li>
  <li>Więcej o problemach z automatycznym wykrywaniem - {{ Bug(340208) }}</li>
  <li><a class="external" href="http://en.wikipedia.org/wiki/Data:_URI_scheme">Adresy URI <code>data:</code></a></li>
  <li><a class="external" href="http://www.searchplugins.net">searchplugins.net</a> - tworzenie wtyczek OpenSearch dla Firefoksa 2 <a class="external" href="http://www.searchplugins.net/pluginlist.aspx">Lista wygenerowanych wtyczek</a></li>
  <li><a class="external" href="http://ready.to/search/en/">Ready2Search</a> - tworzenie wtyczek OpenSearch. <a class="external" href="http://ready.to/search/make/en_make_plugin.htm">Wyszukiwanie za pomocą Ready2Search</a></li>
</ul>
<p><span class="comment">Interwiki link</span></p>
<div class="noinclude">
   </div>