Accès à la fonction requise lorsque les fichiers js sont dans le dossier Data
-
28-10-2019 - |
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)?
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