如何链接到Firefox扩展中的内部图像?

时间:2013-08-09 22:43:23

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

我正在使用Firefox SDK。

以下代码有效,所以至少我知道一切正常,因为它应该:

document.getElementById("mydiv").src="http://somesite/externalimage.jpg";

但是,Mozilla并未批准此版本的扩展程序,因为我正在链接到外部图像。

所以我要做的是链接到扩展内的图像(我将相同的图像上传到扩展内)。

我尝试了以下代码,但它没有用。

document.getElementById("mydiv").src=" + data.url("externalimage.jpg") + ";

那么如何链接到扩展程序中的图像?

2 个答案:

答案 0 :(得分:1)

首先,你的语法是错误的,那将是错误的。它应该是:

document.getElementById("mydiv").src = data.url("externalimage.jpg");

您是否包含自己的数据模块?

var data = require('sdk/self').data;

这是什么情境?您的主要SDK代码可以访问data.url函数,但如果这是在内容脚本中,您不会在那里使用它,那么您需要通过消息传递值

在main.js

// Assuming a pagemod here, but can be any worker
var data = require('sdk/self').data;
var { PageMod } = require('sdk/page-mod');
PageMod({
  include: '*',
  contentScriptFile: data.url('script.js'),
  onAttach: function (worker) {
    worker.port.emit('link', data.url('externalimage.png');
  }
});

在内容脚本中,script.js:

self.port.on('link', function (url) {
  document.getElementById("mydiv").src = url;
});

答案 1 :(得分:0)

只需使用相对网址即可。如果html文件和图像文件都位于/data/文件夹中。那么以下应该有效:

document.getElementById("mydiv").src="some-image.jpg"