如何在内容脚本中获取Firefox插件版本?全局self
对象可用,但它没有版本号。
答案 0 :(得分:2)
插件版本在self
模块中可用,只能从插件脚本访问。
var self = require('sdk/self');
var version = self.version;
您可以通过端口上的消息传递将版本发送到您的内容脚本。执行此操作的方法取决于内容脚本的添加方式,如Content Scripts指南中所述。
如果您使用PageMod,则可以执行此操作:
<强> main.js 强>
var pageMods = require("sdk/page-mod");
var self = require("sdk/self");
var pageMod = pageMods.PageMod({
include: ['*'],
contentScriptFile: self.data.url("content-script.js"),
onAttach: function (worker) {
worker.port.emit('version', self.version);
}
});
内容-的script.js 强>
self.port.on('version', function(version){
alert(version);
});
答案 1 :(得分:2)
您可以在附加工作人员时使用contentScriptOptions
参数(通过 page-mod ,页面工作者,选项卡附加方法等等):
通过version
从插件模块(/ lib /)将contentScriptOptions
传递给内容脚本:
var worker=require("sdk/tabs").activeTab.attach({
contentScriptFile:...,
contentScriptOptions:{
version: require("sdk/self").version
}
});
然后在内容脚本(/ data /)中获取version
作为self.options
的属性:
var {version}=self.options;
澄清一下:内容脚本中的self
与插件模块中使用的self
不同require("sdk/self")
。后者是找到addon version
属性的地方,而不是内容脚本中的属性。