在addon数据文件夹中引用图像资源

时间:2013-08-05 10:19:48

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

我在数据文件夹中有一个图片:data\img\myimage.jpg。我想在内容脚本中引用它。更重要的是,我想通过将那个图像放在那里来改变主页的DOM(注入内容脚本的页面)。

我试着按照杰夫在这里说的那样:http://blog.mozilla.org/addons/2012/01/11/sdk-1-4-known-issue-with-hard-coding-resource-uris/(因为我没有找到任何其他对此问题的引用),但没有任何效果。

为了从附加组件的文件夹中引用图像,我需要在页面中使用哪些URL?

2 个答案:

答案 0 :(得分:7)

数据文件夹在main.js中可用,您可以将该URL作为内容脚本选项传递。

从main.js预览控制台中的网址:

var data = require("sdk/self").data;
console.log(data.url('img/myimage.jpg'));

将url传递给main.js中的内容脚本:

var image_url = data.url('img/myimage.jpg');
...
contentScriptFile: data.url('myScript.js'),
contentScriptOptions: {"image_url" : image_url}
...

要查看内容脚本中的网址:

alert(self.options.image_url);

答案 1 :(得分:2)

就像Jeff在该帖子中提到的那样,您可以使用self模块获取data目录中图像的URL。要在内容脚本中获取该信息,您可以通过messages(此处为page-mod示例,但与所有内容脚本类似)传递它以与脚本进行通信,或者如果您正在内联脚本脚本,可以直接'烘焙'。self模块在​​内容脚本中不可用,但传入一个字符串就可以了。

let url = self.data.url('img/myimage.png');
pageMod({
  contentScript: 'var url = ' + url + ';' + 'console.log(url);',
  include: '*.mozilla.org'
})