我正在使用Mozilla Addon构建器(Node.js / common.js)来构建FireFox插件。请注意,我在构建器默认提供的数据文件夹中有相关文件(稍后解释)。
在数据文件夹中(默认情况下出现)我有两个文件:file1和file2:
File1中
exports.foo = foo;
functions foo() {
return true
}
文件2
$('#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有一个我试图导出的函数,而file2试图使用file1的导出函数。我遇到的问题是file2抛出此异常:
ReferenceError:未定义require
有没有人知道如何解决这个问题(请注意,它们在Lib-folder中时可以正常工作,但我需要在数据文件夹中使用它们?)
答案 0 :(得分:1)
@Phil:出于安全原因,您无法在数据文件夹(可以与内容交互)和lib文件夹(可以直接与Mozilla apis交互)之间共享代码。如果需要在两者之间进行通信,则需要使用异步消息传递。有关所有这些工作原理的详细信息,请参阅文档:https://addons.mozilla.org/en-US/developers/docs/sdk/1.4/dev-guide/addon-development/web-content.html