importScripts()函数在Firefox插件代码中不起作用

时间:2015-08-10 04:48:36

标签: javascript include firefox-addon firefox-addon-sdk

我正在构建一个附加组件,其中包含多个与之关联的.js文件,其中许多文件需要访问require()函数,但当我在其中使用require函数时,我得到了需要的错误未定义。使用importScripts()包含require.js文件,但导入脚本也会生成错误。

importScripts('resource://gre/modules/workers/require.js');

也使用

self.importScripts('resource://gre/modules/workers/require.js');

生成的错误是

JPM undefined   Message: ReferenceError: importScripts is not defined

JPM undefined   Message: ReferenceError: importScripts is not defined

需要帮助才能包含可以访问require()importScripts()功能的多个文件。

3 个答案:

答案 0 :(得分:1)

看起来您正在使用附加SDK。

您不能对所有JS文件使用特权代码,包括require()。您只能使用main.js脚本中的特权代码。然后使用内容脚本/ worker在主脚本和其他脚本之间进行通信。

答案 1 :(得分:0)

怎么样:

let loader = Cc["@mozilla.org/moz/jssubscript-loader;1"]
               .getService(Ci.mozIJSSubScriptLoader);
loader.loadSubScript("chrome://marionette/content/simpletest.js");

答案 2 :(得分:0)

这是在插件中使用webworkers的一个很好的例子,虽然没有提到importScripts函数:-(

how to use webworkers in Mozilla addons

您可以尝试使用工作脚本中的importScripts函数正常添加它们,但是为工作脚本提供完整的Web网址,FF似乎没有抱怨。