我正在使用附加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
任何提示?谢谢。
答案 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来对照这些脚本附加到的页面。