Как я могу получить версию аддона Firefox в сценарии контента? Глобальный объект self
доступен, но у него нет номера версии.
Получить версию надстройки Firefox из скрипта контента
Ответы (2)
Версия дополнения доступна в модуле self
. который доступен только из аддон-скриптов.
var self = require('sdk/self');
var version = self.version;
Вы можете отправить версию в свои скрипты контента через передачу сообщений по портам. Метод для этого зависит от того, как были добавлены сценарии содержимого, как описано в Сценарии контента.
Если вы использовали 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);
}
});
content-script.js
self.port.on('version', function(version){
alert(version);
});
Вы можете использовать параметр contentScriptOptions
при присоединении воркеров (через page-mod, page-worker, метод tab attach и т. д.):
Передайте version
скрипту содержимого через contentScriptOptions
из дополнительного модуля (/lib/):
var worker=require("sdk/tabs").activeTab.attach({
contentScriptFile:...,
contentScriptOptions:{
version: require("sdk/self").version
}
});
Затем получите version
как свойство self.options
в скрипте содержимого (/data/):
var {version}=self.options;
Для уточнения: self
в сценарии содержимого не совпадает с self
через require("sdk/self")
, используемым в модуле расширения. В последнем находится свойство аддона version
, а не в сценарии контента.