当js文件位于Data文件夹中时访问必需的函数

时间:2012-01-15 20:58:43

标签: javascript node.js firefox-addon firefox-addon-sdk

我正在使用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中时可以正常工作,但我需要在数据文件夹中使用它们?)

1 个答案:

答案 0 :(得分:1)

@Phil:出于安全原因,您无法在数据文件夹(可以与内容交互)和lib文件夹(可以直接与Mozilla apis交互)之间共享代码。如果需要在两者之间进行通信,则需要使用异步消息传递。有关所有这些工作原理的详细信息,请参阅文档:https://addons.mozilla.org/en-US/developers/docs/sdk/1.4/dev-guide/addon-development/web-content.html