diff options
Diffstat (limited to 'files/de/erweiterungen_faq/index.html')
-rw-r--r-- | files/de/erweiterungen_faq/index.html | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/files/de/erweiterungen_faq/index.html b/files/de/erweiterungen_faq/index.html new file mode 100644 index 0000000000..7b158c3814 --- /dev/null +++ b/files/de/erweiterungen_faq/index.html @@ -0,0 +1,57 @@ +--- +title: Erweiterungen FAQ +slug: Erweiterungen_FAQ +tags: + - Erweiterungen +translation_of: Archive/Mozilla/Extension_Frequently_Asked_Questions +--- +<p>Dies ist eine Sammlung mit häufig gestellten Fragen zur Entwicklung von <a href="/de/Erweiterungen" title="de/Erweiterungen">Erweiterungen</a>. Die meisten werden derzeit wohl für den Firefox geschrieben. Viele, wenn nicht sogar alle, sollten relativ einfach an SeaMonkey, Thunderbird oder jede andere Anwendung angepasst werden können. Für Thunderbird gibt es außerdem <a href="/editor/fckeditor/core/editor/de/Erweiterungen/Thunderbird/HowTos">HowTos</a> sowie weitere <a href="/editor/fckeditor/core/editor/de/Erweiterungen/Thunderbird/FAQ">FAQs</a>.</p> +<p>Falls Sie sich fragen, wo Sie am besten beginnen sollten, versuchen Sie es mit unserem Tutorial <a href="/de/Erweiterung_erstellen" title="de/Erweiterung_erstellen">Erweiterung_erstellen</a> oder dem <a class="external" href="http://kb.mozillazine.org/Getting_started_with_extension_development">Getting started Tutorial auf MozillaZine </a>. Sie können den <a class="external" href="http://ted.mielczarek.org/code/mozilla/extensionwiz/">Extension Wizard</a> benutzen, um ein Template für den ersten Start zu erstellen.</p> +<p>Richten Sie sich außerdem eine <a href="/de/Einrichten_einer_Entwicklungsumgebung_f%C3%BCr_Erweiterungen" title="de/Einrichten_einer_Entwicklungsumgebung_für_Erweiterungen"> Entwicklungsumgebung</a> ein.</p> +<h3 id="Debuggen">Debuggen</h3> +<p>Sie sollten eine <a href="/de/Einrichten_einer_Entwicklungsumgebung_f%C3%BCr_Erweiterungen" title="de/Einrichten_einer_Entwicklungsumgebung_für_Erweiterungen"> Entwicklungsumgebung</a> einrichten bevor Sie versuchen eine Erweiterung zu debuggen.</p> +<p>Der <a href="/editor/fckeditor/core/editor/de/Venkman">Venkman JavaScript Debugger</a> sollte in schwierigen Fällen nützlich sein. Vergessen Sie dabei nicht die "Debug -> Exclude Browser Files" Option zu deaktivieren, wenn Sie an einer Erweiterung arbeiten.</p> +<h4 id="Wie_finde_ich_Fehler_in_meinem_Code">Wie finde ich Fehler in meinem Code?</h4> +<p>Wenn die <a href="/de/Einrichten_einer_Entwicklungsumgebung_f%C3%BCr_Erweiterungen" title="de/Einrichten_einer_Entwicklungsumgebung_für_Erweiterungen"> Option <em>javascript.options.showInConsole</em></a> auf <em>true</em> eingestellt ist werden alle Fehler in der <a href="/de/Fehlerkonsole" title="de/Fehlerkonsole">Fehlerkonsole</a> gemeldet. Wenn alle JavaScriptfehler in der Konsole geloggt werden, ist es einfacher die Bugs im Code zu verfolgen.</p> +<h4 id="Wie_kann_ich_den_Ablauf_meiner_Erweiterung_verfolgen">Wie kann ich den Ablauf meiner Erweiterung verfolgen?</h4> +<p>Sie können <a href="/de/DOM/Window.alert" title="de/DOM/Window.alert"> alert()</a>, <a href="/de/DOM/Window.dump" title="de/DOM/Window.dump"> dump()</a> oder <a href="/de/Components.utils.reportError" title="de/Components.utils.reportError"> Components.utils.reportError()</a> benutzen. Mithilfe von {{ Interface("nsIConsoleService") }} können ebenfalls variable Daten sowie Debuggingtexte an die Fehlerkonsole gesendet werden. Alternativ kann die <a class="external" href="http://www.hacksrus.com/~ginda/venkman/">Venkman JavaScript Debugger</a> Erweiterung benutzt werden.</p> +<h4 id="Warum_läuft_mein_Skript_nicht_wie_erwartet">Warum läuft mein Skript nicht wie erwartet?</h4> +<p>Falls sich ihr Script nicht wie erwartet verhält, sollten Sie zu erst die Fehlerkonsole auf Fehler prüfen (sie <a href="/de/Erweiterungen_FAQ#Wie_finde_ich_Fehler_in_meinem_Code.3F" title="de/Erweiterungen_FAQ#Wie_finde_ich_Fehler_in_meinem_Code.3F"> oben</a>).</p> +<p>Häufig wird versucht auf das DOM eines Fensters zuzugreifen noch bevor dieses vollständig geladen wurde. Das passiert, wenn der Initialisierungscode am Anfang des Skriptes eingebunden wird (u.a. außerhalb einer Funktion). Durch die Nutzung eines Loadevent-Listeners kann dieses Problem gelöst werden, da der Code erst ausgeführt wird wenn die Seite vollständig geladen wurde:</p> +<pre>function exampleBrowserStartup(event) +{ + // Packen Sie hier Ihren Code hinein +} +window.addEventListener("load", exampleBrowserStartup, false); +</pre> +<p>Falls Sie einen ähnlichen Fehler wie etwa »JavaScript error: <a class=" external" rel="freelink">chrome://myextension/content/overlay.js</a>, line 47: missing ; before statement« sehen, verwenden Sie möglicherweise Funktionen oder Schreibweisen aus JavaScript 1.7, während Ihre Erweiterung unter einer früheren Version betrieben wird. Um sicherzustellen, dass Ihr Code unter JavaScript 1.7 läuft, schreiben Sie einfach:</p> +<pre><script type="application/x-javascript" src="overlay.js;version=1.7"/> +</pre> +<h4 id="Warum_kann_ich_auf_die_angezeigte_Webseite_nicht_zugreifen">Warum kann ich auf die angezeigte Webseite nicht zugreifen?</h4> +<p>Um auf die angezeigte Webseite von einem browser.xul overlay zuzugreifen, müssen Sie <em>content.document</em> statt <em>document</em> benutzen, da dieses das Browserfenster selbst repräsentiert. Weitere Details finden Sie unter <a href="/de/Mit_Fenstern_im_Chrome_Code_arbeiten" title="de/Mit Fenstern im Chrome +Code arbeiten">Mit Fenstern im Chrome Code arbeiten</a></p> +<p>Außerdem verhindert der XPCNativeWrapper standardmäßig den Zugriff auf Script-definierte Objekte der Webseite und einige andere Dinge.</p> +<h4 id="Warum_kann_ich_kein_XMLHttpRequest_in_meiner_Erweiterung_verwenden">Warum kann ich kein XMLHttpRequest in meiner Erweiterung verwenden?</h4> +<p>Wenn Sie versuchen Informationen einer Erweiterung über XMLHttpRequest zu senden oder zu empfangen, werden Sie möglicherweise Domain-übergreifend arbeiten. Normalerweise kann dies ein Problem darstellen, aber so lange Sie die Anfrage aus einem Chrome Fenster senden, befinden Sie sich innerhalb des Sicherheitsspielraum und können damit arbeiten.</p> +<p>Sie müssen sicherstellen, dass Sie das Domain-übergreifende XMLHttpRequest von einem JavaScript Code ausführen, der von einem XUL Fenster referenziert wird. Wenn Sie versuchen, die Anfrage in Beziehung zum Browser-Inhalt aufzurufen (als "document" des XUL Fenster) werden Sie einen »Zugang Verweigert« Fehler erhalten.</p> +<h4 id="Ich_bekomme_einen_XML-Parser-Fehler_aber_die_Datei_sieht_einwandfrei_aus!">Ich bekomme einen XML-Parser-Fehler, aber die Datei sieht einwandfrei aus!</h4> +<p>Eine häufiger Grund für Parser-Fehler (<span style="color: red;">roter text</span> mit einem <span style="color: red;">-------------^</span> darunter) ist ein „&“ oder „<“ Zeichen im Script oder ein Attributwert mit einer speziellen Bedeutung in XML. Zum Beispiel:</p> +<pre class="eval"><button oncommand="window.open('<span class="nowiki">http://example.com/q?param1=value</span><strong>&param2</strong>=val2')"/> +</pre> +<p>oder</p> +<pre class="eval"><script>function lesser(a,b) { return a < b ? a : b; }</script></pre> +<p>Das Problem kann auf folgende Arten gelöst werden:</p> +<ol> <li>Ersetze Sie das Zeichen mit seiner XML-konformen Repräsentation. (z.B.: „&“ wird zu „&amp;“ und „<“ wird zu „&lt;“)</li> <li>Falls es sich um einen Textknoten wie z.B. ein Script handelt, platzieren Sie diesen in CDATA Tags:</li> <pre><script><![CDATA[ + function lesser(a,b) { + return a < b ? a : b; + } + ]]></script> +</pre> <li>Verschiebe Sie das Script in eine externe Datei und binden Sie diese ein:</li> <pre><script type="application/x-javascript" src="our.js"/></pre> +</ol> +<h3 id="Beispiel_Code">Beispiel Code</h3> +<p>Der einfachste Weg ist es wohl eine passende Erweiterung (oder Teile von Mozilla selbst) zu finden, die genau das tut was man benötigt und dort in den Code schaut. (Die XPI und JAR Dateien sind im ZIP-Format komprimiert).</p> +<p>Außerdem gibt noch weitere Dokumentationen. Zu finden sind diese in der <a href="/Special:Tags?tag=Erweiterungen&language=de" title="Special:Tags?tag=Erweiterungen&language=de"> Liste relevanter Artikel auf MDC</a>, <a href="/de/Codeschnipsel" title="de/Codeschnipsel">Codeschnipsel</a> und <a class="external" href="http://kb.mozillazine.org/Category:Example_code">Beispielcode auf MozillaZine</a>.</p> +<h3 id="Wo_finde_ich_weitere_Hilfe">Wo finde ich weitere Hilfe?</h3> +<p>Unter <a href="/de/Erweiterungen/Andere_Ressourcen" title="de/Erweiterungen/Andere_Ressourcen">Erweiterungen/Andere Ressourcen</a> und <a href="/de/Erweiterungen/Community" title="de/Erweiterungen/Community">Erweiterungen/Community</a>.</p> +<p>Bevor Sie nach Hilfe fragen, kontrollieren Sie Ihre <a href="/de/Einrichten_einer_Entwicklungsumgebung_f%C3%BCr_Erweiterungen" title="de/Einrichten_einer_Entwicklungsumgebung_für_Erweiterungen"> Entwicklungsumgebung</a> und überprüfen Sie die <a href="/de/Fehlerkonsole" title="de/Fehlerkonsole">Fehlerkonsole</a> auf relevante Einträge. Außerdem sollten Sie zumindest eine einfache Suche durchgeführt haben und diese FAQs gelesen haben.</p> +<p>{{ languages( { "en": "en/Extension_Frequently_Asked_Questions", "es": "es/Preguntas_frecuentes_sobre_Extensiones", "fr": "fr/Foire_aux_questions_sur_les_extensions", "it": "it/Domande_frequenti_sulle_Estensioni", "ja": "ja/Extension_Frequently_Asked_Questions", "pl": "pl/Cz\u0119sto_zadawane_pytania_dotycz\u0105ce_rozszerze\u0144", "ru": "ru/FAQ_\u043f\u043e_\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f\u043c" } ) }}</p> |