--- title: Extension Frequently Asked Questions slug: Extension_Frequently_Asked_Questions tags: - Add-ons - Extensions translation_of: Archive/Mozilla/Extension_Frequently_Asked_Questions ---
ここには拡張機能開発の一般的な問題への答えを置いています。現在、これらは主に Firefox に対して書かれています。しかし、全てではありませんが、ほとんどは簡単に SeaMonkey, Thunderbird またはその他のアプリケーションに対しても言い換えられるはずです。
もし開発を始めるための記事をお探しでしたら、私たちのチュートリアル 拡張機能の作成方法 か MozillaZine のスタートチュートリアル をお試し下さい。拡張機能ウィザード を使うと拡張機能の作成を開始するためのテンプレートを生成できます。
{{ 英語版章題("Debugging") }}
拡張機能をデバッグしようとする前に開発のための設定をしなければなりません。
Venkman JavaScript デバッガーは複雑な分岐で役に立つでしょう。拡張機能コードを動作させるときには "Debug -> Exclude Browser Files" オプションを切っておくことを忘れないでください。
{{ 英語版章題("How can I see errors in my code?") }}
javascript.options.showInConsole を true に設定すると、エラーがエラーコンソールへ報告されるようになります。全ての JavaScript エラーをコンソールに出力することで、コード内のバグを見つけ出すのがより簡単になります。JavaScript デバッガアドオンの Venkman を使ってみるのもいいでしょう。
{{ 英語版章題("How can I display what my extension is doing?") }}
alert()
か dump()
機能、Components.utils.reportError()
、または nsIConsoleService
を使うと、変数のデータやデバッグ用のテキストを表示することができます。
{{ 英語版章題("Why doesn\'t my script run properly?") }}
あなたのスクリプトが期待通り動作しないなら、まずエラーコンソール (上 を見てください) で確認すべきです。
一般的なミスとして window を完全に読み込む前に DOM にアクセスしようとすることが挙げられます。スクリプトのトップレベル (つまり、全ての関数の外側) に初期化コードを置いているとこれが発生します。load
イベントリスナーを使い、window が読み込み終わってからコードを実行するようにします:
function exampleBrowserStartup(event) { // ここにスタートアップ用のコード } window.addEventListener("load", exampleBrowserStartup, false);
{{ 英語版章題("Accessing the document of a webpage doesn\'t work") }}
browser.xul オーバーレイから現在の Web ページを参照するには、ブラウザウィンドウ自体のドキュメントである document
の代わりに content.document
を使ってください。詳しいことは chrome コードで window を動作させるを見てください。
標準では XPCNativeWrapper が Web ページのスクリプトが定義したオブジェクトへのアクセス及びその他を妨害します。
{{ 英語版章題("I get an XML parsing error, but the file looks fine!") }}
パースエラー (赤い文字列と -------------^ が下部に出る) の原因としてよくあるのは、スクリプトや属性値の中に XML で特別な意味を持つ文字である & や < が存在する事によるものです。例えば
<button oncommand="window.open('http://example.com/q?param1=value¶m2=val2')"/>
または
<script>function lesser(a,b) { return a < b ? a : b; }</script>
この問題は次の方法のうち一つで解決できます。
<script><![CDATA[ function lesser(a,b) { return a < b ? a : b; } ]]></script>
<script type="application/x-javascript" src="our.js"/>
{{ 英語版章題("Example code") }}
何か便利なことをするためにどんなコードを使えばいいのかを調べるには、それと同じ事を行っている拡張機能 (もしくは Mozilla 自体の一部) を探して、そのコードを見るのが一番簡単です。(XPI ファイルと JAR ファイルは ZIP フォーマットを使っています。)
また、MDC の拡張機能関係の項目のリスト 、コードサンプル 、 MozillaZine のサンプルコードページ などのドキュメントも参照して下さい。
{{ 英語版章題("Where can I get more help?") }}
拡張機能:その他の資料 と 拡張機能:コミュニティ を見てください。
ヘルプを求める前に、必ずデバッグ用の設定を行い、関係のあるメッセージがエラーコンソールに表示されていないかを確認してください。また、尋ねる前に少なくとも簡単な検索ぐらいはするのを忘れないで下さい。そしてこの FAQ を読んでください!