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

Firefox addon 从内容脚本获取Firefox插件版本,firefox-addon,content-script,Firefox Addon,Content Script,如何在内容脚本中获取Firefox插件版本?全局self对象可用,但没有版本号。插件版本在模块中可用,只能通过插件脚本访问 var self = require('sdk/self'); var version = self.version; 您可以通过端口上的消息传递将版本发送到内容脚本。执行此操作的方法取决于内容脚本的添加方式,如指南中所述 如果您正在使用,则可以执行以下操作: main.js content-script.js 通过页面模式、页面工作程序、选项卡附加方法等附加工作程序时,

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

插件版本在模块中可用,只能通过插件脚本访问

var self = require('sdk/self');
var version = self.version;
您可以通过端口上的消息传递将版本发送到内容脚本。执行此操作的方法取决于内容脚本的添加方式,如指南中所述

如果您正在使用,则可以执行以下操作:

main.js

content-script.js

通过页面模式、页面工作程序、选项卡附加方法等附加工作程序时,可以使用contentScriptOptions参数:

从加载项模块/lib/通过contentScriptOptions将版本传递给内容脚本:

var worker=require("sdk/tabs").activeTab.attach({
        contentScriptFile:...,
        contentScriptOptions:{
                version: require("sdk/self").version
        }
}); 
然后将版本作为内容脚本/data/中self.options的属性获取:

var {version}=self.options;

澄清:内容脚本中的self与插件模块中使用的requiresdk/self中的self不同。后者是addon version属性所在的位置,而不是content script中的属性。

这确实有效,但我正在尝试更新version var,而这并没有按照我的想法工作。例如,当我执行self.port.onget-version时,ver=>{version=ver;alertversion;};我收到一个带有版本号的警报,但HTML仍然是0.0.0,我使用它在内容脚本的开头定义版本变量。
var worker=require("sdk/tabs").activeTab.attach({
        contentScriptFile:...,
        contentScriptOptions:{
                version: require("sdk/self").version
        }
}); 
var {version}=self.options;