Please note, this is a STATIC archive of website developer.mozilla.org from November 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Domande frequenti sulle Estensioni

Questo è un breve insieme di risposte ai problemi più comuni che sorgono durante lo sviluppo delle estensioni. Le risposte sono scritte avendo in mente soprattutto Firefox, ma la molte, se non tutte, dovrebbero essere facilmente utilizzabili anche per SeaMonkey, Thunderbird o qualsiasi altra applicazione.

Se sei in cerca di un posto dove venga insegnato come iniziare, prova la nostra guida, Sviluppare un'Estensione o il Tutorial di MozillaZine "Getting started"(EN).

Accertati di aver impostato il tuo ambiente di sviluppo(EN).

Effettuare il Debug

Dovresti aver organizzato l'ambiente di sviluppo(EN) prima di effettuare il debug alla tua estensione.

Il debugger Javascript Venkman può essere utile nelle situazioni complesse, ricorda di disattivare l'opzione "Debug -> Escludi i file del browser" quando lavori sul codice dell'estensione.

Come faccio a scoprire gli errori nel mio codice?

Dopo aver impostato la preferenza javascript.options.showInConsole a true, gli errori saranno riportati nella console JavaScript. Nota che, nonostante il nome, verranno riportati lì tutti i tipi di errore.

Come faccio a visualizzare cosa sta facendo la mia estensione?

Puoi usare le funzioni alert() o dump() o nsIConsoleService.

Perché il mio script non viene eseguito correttamente?

Se il tuo script non funziona come ti aspettavi, la prima cosa da fare è controllare la console Javascript (guarda sopra).

Un errore comune è provare ad accedere al DOM di una finestra prima che questa sia completamente caricata. Questo accade se si mette il codice di inizializzazione al livello più alto dello script (cioè fuori da ogni funzione). La soluzione è utilizzare un evento load per ritardare il proprio codice finché la finestra non sia completamente caricata:

function exampleBrowserStartup(event)
{
  // metti il tuo codice di startup qua
}
window.addEventListener("load", exampleBrowserStartup, false);

Non accede ad un documento di una pagina web

Per accedere al documento della pagina web corrente da un overlay di browser.xul, si deve utilizzare content.document, invece del semplice document che indica il documento della finestra stessa del browser. Guarda "Lavorare con le finestre nel codice chrome" per i dettagli.

Inoltre, come opzione predefinita XPCNativeWrapper impedisce di accedere agli oggetti definiti da script nelle pagine web e di effettuare anche altre operazioni.

Ricevo un errore di analisi XML, ma il file sembra corretto!

Una comune sorgente di errori di analisi (del <font color="red">testo rosso</font> con una linea <font color="red">-------------^</font> sotto) è l'utilizzo di caratteri nello script, o l'attribuzione di un valore, che in XML hanno un particolare significato. Per esempio:

<button oncommand="window.open('https://example.com/q?param1=value&param2=val2')"/>

o

<script>function lesser(a,b) { return a < b ? a : b; }</script>

Il problema può essere risolto in uno dei seguenti modi:

  1. sostituire i caratteri con una rappresentazione che non confligga con XML (Es: "&" -> "&amp;", "<" -> "&lt;")
  2. (nel caso sia un nodo di testo, come uno script) mettere dei tag CDATA intorno:
    <script><![CDATA[
       function lesser(a,b) {
         return a < b ? a : b;
       }
     ]]></script>
  3. Inserire lo script in un file separato e includerlo usando:
    <script type="application/x-javascript" src="our.js"/>

Esempi di codice

Il modo più semplice per trovare quale codice sia necessario per fare qualcosa è cercare un'estensione (o una parte di Mozilla stesso) che esegua quell'azione e guardare il suo codice. (I file XPI e JAR usano il formato ZIP.)

C'è anche della documentazione. Guarda la lista di articoli relativi alle estensioni su MDC e la pagina di esempi di codice su MozillaZine(EN).

Dove posso ottenere più aiuto?

Per favore guarda Estensioni:Altre risorse e Estensioni:Comunità.

Prima di chiedere aiuto, assicurati di aver impostato le preferenze di debug e controlla la console JavaScript per i messaggi correlati. Inoltre, non dimenticare di fare almeno una semplice ricerca prima di domandare. E leggi queste FAQ!

Tag del documento e collaboratori

 Hanno collaborato alla realizzazione di questa pagina: Jules Papillon, Indigo
 Ultima modifica di: Jules Papillon,