2010-12-05 4 views
2

私はFirefox用のビルドと拡張を試みるので、アドオンビルダーを使用してMDCの基本拡張機能を構築しました。 [ツール]メニューの拡張機能をクリックすると、こんにちはワールドポップアップが表示されますが、表示されません。使用済みのFirefoxアドオンビルダーと拡張機能が動作しない

私は、そのonLoad関数がnigol-stringsからデータをフェッチできないと思います。しかし、MDCのWebサイトから生成されたコードにエラーがあるのはなぜですか、それとも私ですか?

var nigol = { 
    onLoad: function() { 
    // initialization code 
    this.initialized = true; 
    this.strings = document.getElementById("nigol-strings"); 
    }, 

    onMenuItemCommand: function(e) { 
    var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"] 
            .getService(Components.interfaces.nsIPromptService); 
    promptService.alert(window, this.strings.getString("helloMessageTitle"), 
           this.strings.getString("helloMessage")); 
    } 
}; 

window.addEventListener("load", nigol.onLoad, false); 

私はアドオンのビルダーからダウンロードしたが、何も変更していないと言いました。

おかげ

答えて

0

あなたがonLoadを呼んでいる方法は、その関数内thisの値は、あなたがそれだと思うものではありません。これを代わりに試してみてください:

window.addEventListener("load", function() { nigol.onLoad(); }, false); 
+0

MatrixFrogを再生していただきありがとうございますが、結果はありませんでした。私はこのことについてあなたの言うことを得ます。文字列はonLoad関数でのみ設定されています。だから私はどのようにすべての関数がそれを呼び出すことができるように私はそれを作るだろうか?ありがとう – nightfox

+0

あなたは 'onMenuItemCommand'と同じ問題を抱えている可能性があります。ドキュメントをチェックすると、その関数の 'this'の値がイベントのターゲットになると思います。ちょうど 'nigol.strings.getString'を実行すると、それは正常に動作すると思われます。 – MatrixFrog

関連する問題