2010-12-05 4 views
2

Je pensais essayer de construire et d'extension pour Firefox alors j'ai utilisé le constructeur de modules complémentaires pour construire une extension de base à MDC. Lorsque je clique sur l'extension dans le menu Outils, il est utile de faire apparaître une fenêtre contextuelle Hello World, mais ce n'est pas le cas.Utilisé Firefox Builder Add-on et l'extension ne fonctionne pas

Je pense que c'est la fonction onLoad qui ne parvient pas à extraire les données des chaînes nigol. Mais si c'est un code généré par le site MDC, pourquoi a-t-il des erreurs ou est-ce moi?

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); 

Comme je l'ai dit, j'ai téléchargé à partir du constructeur addon et n'ai apporté aucune modification.

Merci

Répondre

0

La façon dont vous vous appelez onLoad, la valeur de this dans cette fonction n'est pas ce que vous pensez qu'il est. Essayez ceci à la place:

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

Merci pour la relecture MatrixFrog mais qui n'a eu aucun résultat. Je comprends ce que vous dites à propos de this.strings étant seulement défini dans la fonction onLoad. Alors, comment ferais-je pour que toutes les fonctions puissent l'appeler? Merci – nightfox

+0

Peut-être que vous rencontrez le même problème avec 'onMenuItemCommand'. Vérifiez les docs, je pense que la valeur de 'this' dans cette fonction pourrait être la cible de l'événement. Faites juste 'nigol.strings.getString' et je soupçonne que cela fonctionnera bien. – MatrixFrog

Questions connexes