我在数据文件夹中有一个图片:data\img\myimage.jpg
。我想在内容脚本中引用它。更重要的是,我想通过将那个图像放在那里来改变主页的DOM(注入内容脚本的页面)。
我试着按照杰夫在这里说的那样:http://blog.mozilla.org/addons/2012/01/11/sdk-1-4-known-issue-with-hard-coding-resource-uris/(因为我没有找到任何其他对此问题的引用),但没有任何效果。
为了从附加组件的文件夹中引用图像,我需要在页面中使用哪些URL?
答案 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'
})