我正在使用Firefox SDK。
以下代码有效,所以至少我知道一切正常,因为它应该:
document.getElementById("mydiv").src="http://somesite/externalimage.jpg";
但是,Mozilla并未批准此版本的扩展程序,因为我正在链接到外部图像。
所以我要做的是链接到扩展内的图像(我将相同的图像上传到扩展内)。
我尝试了以下代码,但它没有用。
document.getElementById("mydiv").src=" + data.url("externalimage.jpg") + ";
那么如何链接到扩展程序中的图像?
答案 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"