Question

J'utilise le générateur Mozilla Addon (Node.js / common.js) pour créer un addon FireFox.Veuillez noter que j'ai les fichiers en question (expliqués plus tard) dans le Data-Folder que le constructeur vous donne par défaut.

Dans le dossier Données (fourni par défaut), j'ai deux fichiers: fichier1 et fichier2:

<₹File1

exports.foo = foo;  

functions foo() {
    return true
}

$('#aTestButton').click( function() {

    try
    {
        //The problem: An exception is thrown due to the code below. The exception is:
        //ReferenceError: require is not defined 
        var A_Module = require('file1.js');
        var fooValue = A_Module().foo();
    }

    catch(err)
    {
        alert(err);
    }

});

file1 a une fonction que j'essaye d'exporter tandis que file2 essaie de consommer la fonction exportée de file1.Le problème que j'ai est que file2 lève cette exception:

ReferenceError: require n'est pas défini

Est-ce que quelqu'un sait comment résoudre ce problème (notez que cela fonctionne bien quand ils sont dans le dossier Lib, mais j'en ai besoin dans le dossier Data)?

Était-ce utile?

La solution

@Phil: vous ne pouvez pas partager de code entre le dossier de données (peut interagir avec le contenu) et le dossier lib (peut interagir directement avec les apis de Mozilla) pour des raisons de sécurité.Si vous avez besoin de communiquer entre les deux, vous devez utiliser la transmission de messages asynchrone.Pour plus d'informations sur le fonctionnement de tout cela, consultez la documentation: https://addons.mozilla.org/en-US/developers/docs/sdk/1.4/dev-guide/addon-development/web-content.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top