2

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

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

为了引用加载项文件夹中的图像,我需要在页面中使用什么 URL?

4

2 回答 2

7

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

从 main.js 在控制台中预览 url:

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}
...

要从内容脚本查看 url:

alert(self.options.image_url);
于 2014-06-10T21:10:26.633 回答
2

就像 Jeff 在那篇文章中提到的那样,您可以使用self模块来获取data目录中图像的 URL。要在内容脚本中获取该信息,您可以通过消息(此处为 page-mod 示例,但类似于所有内容脚本)将其传递以与脚本进行通信,或者如果您正在内联内容脚本,则可以只使用 '把它烤进去。该self模块在内容脚本中不可用,但传入一个字符串就可以了。

let url = self.data.url('img/myimage.png');
pageMod({
  contentScript: 'var url = ' + url + ';' + 'console.log(url);',
  include: '*.mozilla.org'
})
于 2013-08-05T15:57:13.147 回答