首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在firefox addon中加载外部库

在firefox addon中加载外部库
EN

Stack Overflow用户
提问于 2015-04-19 09:47:30
回答 2查看 878关注 0票数 2

我正在开发带有addon的firefox插件,但在addon中导入外部库并不成功。重要的是要知道,addon打开了一个新的选项卡,在其中我需要导入的库。

这是我的文件夹结构:

代码语言:javascript
复制
> data
   > jquery.js
   > pixlr.js
> lib
   > main.js

要导入库jquery.js和pixlr.js,我已经尝试了多种方法。由于需要在新选项卡中访问这些库,我尝试了以下方法:

代码语言:javascript
复制
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")]
        });
    }
});

有人知道为什么这行不通吗?提前感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-27 20:12:29

虽然来自erikvold的答案确实对我有用,但我也找到了另一个(也更简单)的解决方案:

代码语言:javascript
复制
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提供的请求模块。

谢谢你的帮助。

票数 0
EN

Stack Overflow用户

发布于 2015-04-26 22:40:42

假设startURL是外接程序中文件的url (尽管您还没有明确说明startURL的用途)。

试试这个:

代码语言:javascript
复制
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")
            ]
          }
        });
    }
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29728245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档