我正在开发带有addon的firefox插件,但在addon中导入外部库并不成功。重要的是要知道,addon打开了一个新的选项卡,在其中我需要导入的库。
这是我的文件夹结构:
> data
> jquery.js
> pixlr.js
> lib
> main.js要导入库jquery.js和pixlr.js,我已经尝试了多种方法。由于需要在新选项卡中访问这些库,我尝试了以下方法:
tabs.open({
url: startURL,
inNewWindow: inNewWindow,
inBackground: inBackground,
contentScriptFile: [self.data.url("jquery.js")],
onReady: function (tab) {
tab.attach({
contentScriptFile: [self.data.url("jquery.js"),
self.data.url("pixlr.js")]
});
}
});有人知道为什么这行不通吗?提前感谢!
发布于 2015-04-27 20:12:29
虽然来自erikvold的答案确实对我有用,但我也找到了另一个(也更简单)的解决方案:
Cu.import(self.data.url("pixlr.js", this));
Cu.import(self.data.url("urlShortener.js", this));您只需使用Firefox addon sdk提供的导入功能即可。我也希望包含jquery,但是对于运行addon的沙箱模式来说,这不是很好。由于我主要使用jquery发送ajax请求,所以我使用了Firefox addon sdk提供的请求模块。
谢谢你的帮助。
发布于 2015-04-26 22:40:42
假设startURL是外接程序中文件的url (尽管您还没有明确说明startURL的用途)。
试试这个:
tabs.open({
url: startURL,
inNewWindow: inNewWindow,
inBackground: inBackground,
onReady: function (tab) {
tab.attach({
contentScript: "self.options.urls.forEach(url => {" +
"var script = document.createElement('script')" +
"script.src = url;" +
"document.body.appendChild(script);" +
"});",
contentScriptOptions: {
urls: [
self.data.url("jquery.js"),
self.data.url("pixlr.js")
]
}
});
}
});https://stackoverflow.com/questions/29728245
复制相似问题