Javascript 在Firefox插件中导入linq.js

Javascript 在Firefox插件中导入linq.js,javascript,firefox-addon,firefox-addon-sdk,Javascript,Firefox Addon,Firefox Addon Sdk,我正在用插件SDK构建一个Firefox插件,我需要在我的lib/main.js库中导入公开可枚举对象的库 这个库应该导入到lib/main.js中,因为我需要的是一个只运行一次的脚本(对于Chrome扩展名对应的background.js文件) 到目前为止,我尝试将linq.js作为contentScriptFile加载,但在尝试使用可枚举对象时出错 这是我的密码: var data = require("sdk/self").data; var pageMod = require("sdk/

我正在用插件SDK构建一个Firefox插件,我需要在我的
lib/main.js
库中导入公开
可枚举对象的库

这个库应该导入到
lib/main.js
中,因为我需要的是一个只运行一次的脚本(对于Chrome扩展名对应的
background.js
文件)

到目前为止,我尝试将linq.js作为contentScriptFile加载,但在尝试使用可枚举对象时出错

这是我的密码:

var data = require("sdk/self").data;
var pageMod = require("sdk/page-mod");

pageMod.PageMod({
  include: "*",
  contentScriptWhen: 'start',
  contentScriptFile: [data.url("linq.js")]
});

console.log(Enumerable);
返回:

Message: ReferenceError: Enumerable is not defined

有什么提示吗?谢谢。

您将linq.js作为内容脚本添加到页面中,而不是将其导入到main.js文件中。有关内容脚本如何工作的更多信息,请参阅

根据您的示例,这实际上是如何工作的:

main.js:

var data = require("sdk/self").data;
var pageMod = require("sdk/page-mod");

pageMod.PageMod({
  include: "*",
  contentScriptWhen: 'start',
  contentScriptFile: [data.url("linq.js"), data.url("myscript.js")]
});
在“myscript.js”中,您可以使用linq.js:

console.log(Enumerable);
此时,您可以在代码中使用linq.js对这些脚本所附加到的页面进行操作