Esse é um guia rápido de respostas para as perguntas mais frequentes sobre o desenvolvimento de Extensões.
Elas são escritas focadas mais no Firefox, mas a maioria é fácil de ser transferida para o SeaMonkey, Thunderbird ou qualquer desses outros aplicativos.
Se você está procurando um lugar para começar, tente nosso tutorial, Construir uma Extensão ou
MozillaZine's Getting started tutorial. Use o Extension Wizard para gerar um template para começar nele.
Tenha certeza de Setting up extension development environment.
Depurando
Você deve set development preferences antes de partir para depurar sua extensão.
O depurador em JavaScript Venkman pode ser viável em casos complexos, mas lembre-se de desligar a opção "Debug -> Exclude Browser Files" enquanto está trabalhando no código da extensão.
Como eu posso ver os erros no meu código?
Depois de set development preferences javascript.options.showInConsole para true, os erros serão mostrados no Console JavaScript. Note que apesar de seu nome todos os erros são mostrados lá.
Como eu posso mostrar o que minha extensão está fazendo?
Você pode usar o alert()
, dump()
, Components.utils.reportError()
, ou até the console service para mostrar dados variáveis e o texto da depuração.
Por que meu código não roda corretamente?
Se o seu código não trabalha como o esperado, a primeira coisa que você deve fazer é checar o console JavaScript (veja sobre).
Um erro comum é tentar acessar a DOM (Document Object Model - Modelo de objeto do documento) de uma janela antes que ela esteja totalmente carregada. Isso acontece se você coloca o código de inicialização no topo do seu código -script- (i.e. fora de qualquer função). O conserto é usar um load
para listar eventos para travar seu código até que a janela termine de carregar:
function exampleBrowserStartup(event) { // coloque o código de inicialização aqui } window.addEventListener("load", exampleBrowserStartup, false);
Acessando um documento de uma página que não funciona
Para acessar um documento de uma página web atual através do browser.xul overlay, você deve usar o content.document
, ao invés de apenas document
que é o próprio documento da janela do navegador. Veja en:Working with windows in chrome code para mais detalhes. Você pode também, por padrão en:XPCNativeWrapper que previne você de acessar através do acesso de um "script-defined objects" na página web e fazer outras tarefas.
Aparece um erro de análise XML, mas o arquivo parece correto!
Uma fonte comum de erros de análise (como <font color="red">texto vermelho</font> com uma <font color="red">-------------^</font> abaixo) é um caracter & ou um < em seu código ou um valor de atributo, que tem uma função especial em XML. Por exemplo:
<button oncommand="window.open('https://example.com/q?param1=value¶m2=val2')"/>
ou
<script>function lesser(a,b) { return a < b ? a : b; }</script>
O problema pode ser resolvido por uma das seguintes formas:
- substitua o caracter que não é representação de conflito XML (Exemplo: "&" -> "&"<" -> "<")
- (em caso de ser um nó de texto, como um código) coloque tags de CDATA ao redor:
<script><![CDATA[ function lesser(a,b) { return a < b ? a : b; } ]]></script>
- Coloque seu código em um arquivo separado e inclua o nome dele:
<script type="application/x-javascript" src="seucodigo.js"/>
Código de Exemplo
A forma mais fácil para encontrar o código que você precisa para usar em algo útil é procurar uma extensão (ou parte do Mozilla mesmo) Isso faz o código e mostra como um código. (Os arquivos XPI e JAR usam o formato ZIP). Encontram-se algumas documentações em: lista de artigos relacionados com extensões no MDC, en:Code snippets, e Example code page on MozillaZine.
Onde posso encontrar mais ajuda?
Por favor veja en:Extensions:Other Resources e Extensões:Comunidade.
Antes de pedir ajuda, tenha certeza de configurar as preferências de depuração e cheque o console JavaScript para mensagens relacionadas. Também, não esqueça de fazer uma pequena busca antes de perguntar. E leia este FAQ!
Categorias
Interwiki Language Link