在Firefox Addon中导入linq.js

时间:2014-10-01 17:21:16

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

我正在使用附加SDK构建Firefox插件,我需要在我的lib/main.js linq.js库中导入公开Enumerable对象的文件。

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

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

这是我的代码:

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

任何提示?谢谢。

1 个答案:

答案 0 :(得分:0)

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

使用您的示例,这实际上是如何工作的:

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来对照这些脚本附加到的页面。