mozilla

Porównywanie wersji

Często zadawane pytania dotyczące rozszerzeń

Change Revisions

Wersja 282236:

Sprawdzenie wersji 282236 wykonane przez Yozh88

Wersja 214637:

Sprawdzenie wersji 214637 wykonane przez Yozh88

Tytuł:
Często zadawane pytania dotyczące rozszerzeń
Często zadawane pytania dotyczące rozszerzeń
Ciąg znaków:
Często_zadawane_pytania_dotyczące_rozszerzeń
Często_zadawane_pytania_dotyczące_rozszerzeń
Etykiety:
Wszystkie_kategorie, Rozszerzenia, Dodatki
Treść:

Revision 282236
Revision 214637
t7    <p>t
8      W tym artykule przedstawiono rozwiązania kilku najczęściej 
>spotykanych problemów związanych z programowaniem <a href="pl/Roz 
>szerzenia">rozszerzeń</a>. Dotyczą one przede wszystkim przegląda 
>rki Firefox, ale co najmniej większość z nich może zostać zastoso 
>wana w programach SeaMonkey, Thunderbird i innych aplikacjach Moz 
>illi. 
9    </p>
10    <p>
11      Jeżeli dopiero zaczynasz programowanie rozszerzeń, zapoznaj
> się z poradnikiem <a href="pl/Tworzymy_rozszerzenie">Tworzymy ro 
>zszerzenie</a> lub artykułem <a class="external" href="http://kb. 
>mozillazine.org/Getting_started_with_extension_development">Wprow 
>adzenie do programowania rozszerzeń</a> dostępnym w witrynie Mozi 
>llaZine. Aby utworzyć szablon rozszerzenia, który będzie można po 
>tem rozbudować i dostosować do własnych potrzeb, skorzystaj z <a  
>class="external" href="http://ted.mielczarek.org/code/mozilla/ext 
>ensionwiz/">Kreatora rozszerzeń</a>. 
12    </p>
13    <p>
14      Nie zapomnij o <a href="pl/Przygotowanie_%c5%9brodowiska_pr
>ogramowania_rozszerzenia">przygotowaniu środowiska programowania  
>rozszerzenia</a>. 
15    </p>
16    <h3 id="Debugowanie" name="Debugowanie">
17      Debugowanie
18    </h3>
19    <p>
20      Przed rozpoczęciem debugowania rozszerzenia należy <a href=
>"pl/Przygotowanie_%c5%9brodowiska_programowania_rozszerzenia">prz 
>ygotować środowisko programowania rozszerzenia</a>. 
21    </p>
22    <p>
23      Debuger języka JavaScript <a href="pl/Venkman">Venkman</a> 
>może być przydatnym narzędziem analizy skomplikowanego kodu; korz 
>ystając z niego, należy pamiętać o wyłączeniu opcji "Debug -&gt;  
>Exclude Browser Files" podczas pracy nad kodem rozszerzenia. 
24    </p>
25    <h4 id="Jak_wy.C5.9Bwietli.C4.87_b.C5.82.C4.99dy_w_moim_kodzi
>e.3F" name="Jak_wy.C5.9Bwietli.C4.87_b.C5.82.C4.99dy_w_moim_kodzi 
>e.3F"> 
26      Jak wyświetlić błędy w moim kodzie?
27    </h4>
28    <p>
29      Po <a href="pl/Przygotowanie_%c5%9brodowiska_programowania_
>rozszerzenia">ustawieniu wartości <b>true</b> dla preferencji <b> 
>javascript.options.showInConsole</b></a> komunikaty o błędach będ 
>ą wyświetlane w <a href="pl/Konsola_b%c5%82%c4%99d%c3%b3w">Konsol 
>i błędów</a>. Rejestrowanie wszystkich błędów JavaScript w konsol 
>i znacznie ułatwia odnalezienie błędów w tworzonym kodzie. 
30    </p>
31    <h4 id="Jak_sprawdzi.C4.87.2C_jakie_operacje_wykonuje_moje_ro
>zszerzenie.3F" name="Jak_sprawdzi.C4.87.2C_jakie_operacje_wykonuj 
>e_moje_rozszerzenie.3F"> 
32      Jak sprawdzić, jakie operacje wykonuje moje rozszerzenie?
33    </h4>
34    <p>
35      Do wyświetlania wartości zmiennych i debugowania tekstu moż
>na skorzystać z metod <code><a href="pl/DOM/window.alert">alert() 
></a></code>, <code><a href="pl/DOM/window.dump">dump()</a></code> 
> i <code><a href="pl/Components.utils.reportError">Components.uti 
>ls.reportError()</a></code> oraz <a href="pl/NsIConsoleService">i 
>nterfejsu usługi konsoli</a>. Można także zainstalować <a class=" 
>link-https" href="https://addons.mozilla.org/en-US/firefox/216">d 
>odatek debugera JavaScript Venkman</a>. 
36    </p>
37    <h4 id="Dlaczego_m.C3.B3j_skrypt_nie_dzia.C5.82a_poprawnie.3F
>" name="Dlaczego_m.C3.B3j_skrypt_nie_dzia.C5.82a_poprawnie.3F"> 
38      Dlaczego mój skrypt nie działa poprawnie?
39    </h4>
40    <p>
41      Jeżeli skrypt nie działa w oczekiwany sposób, najpierw nale
>ży sprawdzić Konsolę błędów (patrz <a href="#Jak_wy.C5.9Bwietli.C 
>4.87_b.C5.82.C4.99dy_w_moim_kodzie.3F">wyżej</a>). 
42    </p>
43    <p>
44      Jednym z powszechnie popełnianych błędów jest próba uzyskan
>ia dostępu do obiektu DOM okna przed pełnym załadowaniem go przez 
> przeglądarkę. Sytuacja ta występuje wówczas, gdy kod inicjalizuj 
>ący jest umieszczony na najwyższym poziomie w skrypcie (tzn. nie  
>znajduje się wewnątrz żadnej funkcji). Rozwiązaniem jest użycie o 
>bserwatora zdarzenia <code>load</code> (ang. <i>event listener</i 
>>) w celu opóźnienia wykonania kodu do momentu zakończenia ładowa 
>nia danych w oknie: 
45    </p>
46    <pre class="eval">
47function exampleBrowserStartup(event)
48{
49  // tutaj należy umieścić kod wykonywany na początku skryptu
50}
51window.addEventListener("load", exampleBrowserStartup, false);
52</pre>
53    <h4 id="Nie_mo.C5.BCna_uzyska.C4.87_dost.C4.99pu_do_obiektu_d
>ocument_bie.C5.BC.C4.85cej_strony" name="Nie_mo.C5.BCna_uzyska.C4 
>.87_dost.C4.99pu_do_obiektu_document_bie.C5.BC.C4.85cej_strony"> 
54      Nie można uzyskać dostępu do obiektu <code>document</code> 
>bieżącej strony 
55    </h4>
56    <p>
57      Aby uzyskać dostęp do obiektu <code>document</code> bieżące
>j strony z poziomu nakładki <code>browser.xul</code>, należy użyć 
> obiektu <code>content.document</code> — obiekt <code>document</c 
>ode> odnosi się bowiem do obiektu <code>document</code> okna prze 
>glądarki. Więcej informacji można znaleźć w artykule <a href="pl/ 
>Korzystanie_z_okien_w_kodzie_chrome#Okna_zawarto.C5.9Bci">Korzyst 
>anie z okien w kodzie chrome</a>. 
58    </p>
59    <p>
60      Ponadto obiekt <a href="pl/XPCNativeWrapper">XPCNativeWrapp
>er</a> domyślnie blokuje między innymi dostęp do obiektów zdefini 
>owanych przez skrypty działające na stronie internetowej. 
61    </p>
62    <h4 id="Wyst.C4.85pi.C5.82_b.C5.82.C4.85d_przetwarzania_kodu_
>XML.2C_ale_plik_wygl.C4.85da_na_poprawny" name="Wyst.C4.85pi.C5.8 
>2_b.C5.82.C4.85d_przetwarzania_kodu_XML.2C_ale_plik_wygl.C4.85da_ 
>na_poprawny"> 
63      Wystąpił błąd przetwarzania kodu XML, ale plik wygląda na p
>oprawny 
64    </h4>
65    <p>
66      Częstą przyczyną błędów przetwarzania (oznaczanych <font co
>lor="red">czerwonym tekstem</font> i znakami <font color="red">-- 
>-----------^</font> znajdującymi się pod błędnym kodem) są znaki  
>&amp; i &lt; umieszczone w skrypcie lub w wartości atrybutu. Znak 
>i te mają specjalne znaczenie w języku XML. Oto przykład: 
67    </p>
68    <pre class="eval">
69&lt;button oncommand="window.open('<span class="nowiki">http://pr
>zykladowastrona.pl/</span>q?parametr1=wartosc<b>&amp;parametr2</b 
>>=wartosc2')"/&gt; 
70</pre>
71    <p>
72      lub
73    </p>
74    <pre class="eval">
75&lt;script&gt;function lesser(a,b) { return <b>a &lt; b</b> ? a :
> b; }&lt;/script&gt; 
76</pre>
77    <p>
78      Problem można rozwiązać na jeden z podanych sposobów:
79    </p>
80    <ol>
81      <li>Zastąpić dany znak jego wersją, która nie powoduje konf
>liktu w kodzie XML (np.: "&amp;" -&gt; "&amp;amp;", "&lt;" -&gt;  
>"&amp;lt;") 
82      </li>
83      <li>W przypadku użycia znaków w węźle tekstowym, takim jak 
>skrypt, umieścić znaczniki CDATA na początku i na końcu kodu: 
84        <pre>
85&lt;script&gt;&lt;![CDATA[
86   function lesser(a,b) {
87     return a &lt; b ? a : b;
88   }
89 ]]&gt;&lt;/script&gt;
90</pre>
91      </li>
92      <li>Umieścić kod skryptu w osobnym pliku i dołączyć ten pli
>k, korzystając ze znacznika <code>script</code>: 
93        <pre>
94&lt;script type="application/x-javascript" src="mojskrypt.js"/&gt
>; 
95</pre>
96      </li>
97    </ol>
98    <h3 id="Przyk.C5.82adowy_kod" name="Przyk.C5.82adowy_kod">
99      Przykładowy kod
100    </h3>
101    <p>
102      Najprostszym sposobem utworzenia kodu wykonującego daną ope
>rację jest znalezienie rozszerzenia (lub części samej Mozilli) wy 
>konującego tę operację i analiza jego kodu. (Pliki XPI i JAR to a 
>rchiwa w formacie ZIP ze zmienionym rozszerzeniem pliku). 
103    </p>
104    <p>
105      Dostępna jest także dokumentacja: <a href="Special:Tags?tag
>=Rozszerzenia&amp;language=pl">lista artykułów MDC dotyczących tw 
>orzenia rozszerzeń</a>, <a href="pl/Fragmenty_kodu">Fragmenty kod 
>u</a> oraz <a class="external" href="http://kb.mozillazine.org/Ca 
>tegory:Example_code">Przykłady kodu w witrynie MozillaZine</a>. 
106    </p>
107    <h3 id="Gdzie_mog.C4.99_uzyska.C4.87_dodatkow.C4.85_pomoc.3F"
> name="Gdzie_mog.C4.99_uzyska.C4.87_dodatkow.C4.85_pomoc.3F"> 
108      Gdzie mogę uzyskać dodatkową pomoc?
109    </h3>
110    <p>
111      Zobacz <a href="pl/Rozszerzenia/Inne_zasoby">Rozszerzenia:I
>nne zasoby</a> i <a href="pl/Rozszerzenia/Spo%c5%82eczno%c5%9b%c4 
>%87">Rozszerzenia:Społeczność</a>. 
112    </p>
113    <p>
114      Zanim poprosisz o pomoc, upewnij się, czy <a href="#Debugow
>anie">preferencje dotyczące debugowania</a> są ustawione prawidło 
>wo i czy <a href="#Jak_wy.C5.9Bwietli.C4.87_b.C5.82.C4.99dy_w_moi 
>m_kodzie.3F">sprawdzono odpowiednie komunikaty w Konsoli błędów</ 
>a>. Nie zapomnij także o przeszukaniu Internetu przed zadaniem py 
>tania. I oczywiście zapoznaj się z niniejszą listą często zadawan 
>ych pytań! 
115    </p>{{ languages( { "de": "de/Erweiterungen_FAQ", "en": "en/E
>xtension_Frequently_Asked_Questions", "es": "es/Preguntas_frecuen 
>tes_sobre_Extensiones", "fr": "fr/Foire_aux_questions_sur_les_ext 
>ensions", "it": "it/Domande_frequenti_sulle_Estensioni", "ja": "j 
>a/Extension_Frequently_Asked_Questions", "ru": "ru/FAQ_\u043f\u04 
>3e_\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u 
>043c" } ) }} 

Wróć do historii