我正在使用Add-on 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有什么提示吗?谢谢。
发布于 2014-10-03 18:18:15
您将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对这些脚本所附加的页面进行操作。
https://stackoverflow.com/questions/26146962
复制相似问题