1

我正在使用 Firefox SDK。

以下代码有效,因此至少我知道一切正常:

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

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

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

我尝试了以下代码,但没有成功。

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

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

4

2 回答 2

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;
});
于 2013-08-10T02:37:32.850 回答
0

只需使用相对网址。如果 html 文件和图像文件都位于该/data/文件夹中。然后以下应该工作:

document.getElementById("mydiv").src="some-image.jpg"
于 2013-08-11T18:13:06.340 回答