从内容脚本中获取Firefox插件版本

时间:2014-10-29 19:20:49

标签: firefox-addon content-script

如何在内容脚本中获取Firefox插件版本?全局self对象可用,但它没有版本号。

2 个答案:

答案 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属性的地方,而不是内容脚本中的属性。