如何在内容脚本和插件之间共享代码?

mag*_*noz 8 firefox-addon google-chrome-extension firefox-addon-sdk

我正在为Firefox 4+编写扩展程序.

我在一个名为的文件中有一些代码utils.js,我想从插件main.jspage-mod内容脚本中调用它.

是否可以从两者引用相同的utils.js?如果是这样,怎么样?

编辑:更好的解决方案是允许我在Google Chrome扩展程序中使用相同的代码.

mag*_*noz 0

由于我找不到现有的解决方案,我现在只是将同一文件复制到多个目录(作为构建/调试过程的一部分)。

这似乎目前效果最好,特别是因为大部分源代码也在扩展的 Google Chrome 实现中重用。

为了使其utils.js可以在 Firefox 内容脚本和 Chrome 中使用(两者都没有 CommonJS),我像这样导入它:

var Utils = Utils || require('utils').Utils; 
Run Code Online (Sandbox Code Playgroud)

的相关部分utils.js如下所示:

function initUtils() {
    var result = {
        // ..define exported object...
    };
    return result;
};

// Chrome
var Utils = initUtils();
var exports = exports || {}; 
// Firefox
exports.Utils = Utils;
Run Code Online (Sandbox Code Playgroud)