1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
---
title: FAQ Extensões
slug: FAQ_Extensões
tags:
- Extensões
---
<p>Esse é um guia rápido de respostas para as perguntas mais frequentes sobre o desenvolvimento de <a href="/pt/Extensões" title="pt/Extensões">Extensões</a>.</p>
<p>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.</p>
<p>Se você está procurando um lugar para começar, tente nosso tutorial, <a href="/pt/Construir_uma_Extensão" title="pt/Construir_uma_Extensão">Construir uma Extensão</a> ou</p>
<p><a class="external" href="http://kb.mozillazine.org/Getting_started_with_extension_development">MozillaZine's Getting started tutorial</a>. Use o <a class="external" href="http://ted.mielczarek.org/code/mozilla/extensionwiz/">Extension Wizard</a> para gerar um template para começar nele.</p>
<p>Tenha certeza de <a class="external" href="http://developer.mozilla.org/en/docs/Setting_up_extension_development_environment">Setting up extension development environment</a>.</p>
<h3 id="Depurando">Depurando</h3>
<p>Você deve <a class="external" href="http://developer.mozilla.org/en/docs/Setting_up_extension_development_environment">set development preferences</a> antes de partir para depurar sua extensão.</p>
<p>O depurador em JavaScript <a href="/pt/Venkman" title="pt/Venkman">Venkman</a> 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.</p>
<h4 id="Como_eu_posso_ver_os_erros_no_meu_c.C3.B3digo.3F">Como eu posso ver os erros no meu código?</h4>
<p>Depois de <a class="external" href="http://developer.mozilla.org/en/docs/Setting_up_extension_development_environment">set development preferences</a> <strong>javascript.options.showInConsole</strong> para <strong>true</strong>, os erros serão mostrados no Console JavaScript. Note que apesar de seu nome todos os erros são mostrados lá.</p>
<h4 id="Como_eu_posso_mostrar_o_que_minha_extens.C3.A3o_est.C3.A1_fazendo.3F">Como eu posso mostrar o que minha extensão está fazendo?</h4>
<p>Você pode usar o <code><a href="/pt/DOM/window.alert" title="pt/DOM/window.alert">alert()</a></code>, <code><a href="/pt/DOM/window.dump" title="pt/DOM/window.dump">dump()</a></code>, <code><a href="/pt/Components.utils.reportError" title="pt/Components.utils.reportError">Components.utils.reportError()</a></code>, ou até <a href="/pt/NsIConsoleService" title="pt/NsIConsoleService">the console service</a> para mostrar dados variáveis e o texto da depuração.</p>
<h4 id="Por_que_meu_c.C3.B3digo_n.C3.A3o_roda_corretamente.3F">Por que meu código não roda corretamente?</h4>
<p>Se o seu código não trabalha como o esperado, a primeira coisa que você deve fazer é checar o console JavaScript (veja <a href="#Como_eu_posso_ver_os_erros_no_meu_c.C3.B3digo.3F">sobre</a>).</p>
<p>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 <code>load</code> para listar eventos para travar seu código até que a janela termine de carregar:</p>
<pre class="eval">function exampleBrowserStartup(event)
{
// coloque o código de inicialização aqui
}
window.addEventListener("load", exampleBrowserStartup, false);
</pre>
<h4 id="Acessando_um_documento_de_uma_p.C3.A1gina_que_n.C3.A3o_funciona">Acessando um documento de uma página que não funciona</h4>
<p>Para acessar um documento de uma página web atual através do browser.xul overlay, você deve usar o <code>content.document</code>, ao invés de apenas <code>document</code> que é o próprio documento da janela do navegador. Veja <a href="/pt/Working_with_windows_in_chrome_code#Content_windows" title="pt/Working_with_windows_in_chrome_code#Content_windows">en:Working with windows in chrome code</a> para mais detalhes. Você pode também, por padrão <a href="/en/XPCNativeWrapper">en:XPCNativeWrapper</a> que previne você de acessar através do acesso de um "script-defined objects" na página web e fazer outras tarefas.</p>
<h4 id="Aparece_um_erro_de_an.C3.A1lise_XML.2C_mas_o_arquivo_parece_correto.21">Aparece um erro de análise XML, mas o arquivo parece correto!</h4>
<p>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:</p>
<pre class="eval"><button oncommand="window.open('<span class="nowiki">http://example.com/</span>q?param1=value<strong>&param2</strong>=val2')"/>
</pre>
<p>ou</p>
<pre class="eval"><script>function lesser(a,b) { return <strong>a < b</strong> ? a : b; }</script>
</pre>
<p>O problema pode ser resolvido por uma das seguintes formas:</p>
<ol> <li>substitua o caracter que não é representação de conflito XML (Exemplo: "&" -> "&amp;"<" -> "&lt;")</li> <li>(em caso de ser um nó de texto, como um código) coloque tags de CDATA ao redor: <pre><script><![CDATA[
function lesser(a,b) {
return a < b ? a : b;
}
]]></script></pre> </li> <li>Coloque seu código em um arquivo separado e inclua o nome dele: <pre><script type="application/x-javascript" src="seucodigo.js"/></pre> </li>
</ol>
<h3 id="C.C3.B3digo_de_Exemplo">Código de Exemplo</h3>
<p>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: <a href="/Special:Tags?tag=Extensões&language=pt" title="Special:Tags?tag=Extensões&language=pt">lista de artigos relacionados com extensões no MDC</a>, <a href="/en/Code_snippets">en:Code snippets</a>, e <a class="external" href="http://kb.mozillazine.org/Category:Example_code">Example code page on MozillaZine</a>.</p>
<h3 id="Onde_posso_encontrar_mais_ajuda.3F">Onde posso encontrar mais ajuda?</h3>
<p>Por favor veja <a href="/en/Extensions/Other_Resources">en:Extensions:Other Resources</a> e <a href="/pt/Extensões/Comunidade" title="pt/Extensões/Comunidade">Extensões:Comunidade</a>.</p>
<p>Antes de pedir ajuda, tenha certeza de configurar as <a href="#Depurando">preferências de depuração</a> e <a href="#Como_eu_posso_mostrar_o_que_minha_extens.C3.A3o_est.C3.A1_fazendo.3F">cheque o console JavaScript</a> para mensagens relacionadas. Também, não esqueça de fazer uma pequena busca antes de perguntar. E leia este FAQ!</p>
<p><span class="comment">Categorias</span></p>
<p><span class="comment">Interwiki Language Link</span></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" } ) }}</p>
|