我正在构建一个附加组件,其中包含多个与之关联的.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()
功能的多个文件。
答案 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似乎没有抱怨。