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

标签 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") + ";

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

最佳答案

首先,您的语法错误并且会出错。应该是:

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;
});

关于javascript - 如何链接到 Firefox 扩展中的内部图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18156742/

相关文章:

javascript - 使用 jQuery 按类观察元素计数

javascript - 如何使用 JavaScript 检测是否已安装 Internet Explorer 插件

javascript - 使用内容脚本中的 `simple-prefs` 打开插件的选项页面

javascript - 如何使用 javascript(原型(prototype))继承正确派生具有私有(private)变量的对象

javascript - 当新子元素出现在 html 元素中时触发事件

php - 将鼠标悬停在文本上时显示工具提示

javascript - 火狐扩展 : Inject javascript into page before standard page javascript is loaded

javascript - 阻止网页以编程方式加载

firefox - 如何使用 Firefox Add-On SDK 获取选定的文本?

javascript - 在导入模块中使用 main.js 中的函数