我怎样才能得到 firefox 插件的版本号?
How can i get the firefox add-on version number?
我的扩展有 package.json 个包含安装属性的文件。
有没有办法获取插件版本
插件管理器
你可以从AddonManager
模块中获取它
Components.utils.import('resource://gre/modules/AddonManager.jsm');
AddonManager.getAddonByID("YOUREXTENSIONID", function(addon) {
var version = addon.version;
});
更多信息:
AddonManager
Code Samples
注:(来自AddonManager)
The majority of the methods are asynchronous meaning that results are
delivered through callbacks passed to the method. The callbacks will
be called just once but that may be before or after the method
returns.
因此可能无法立即获得结果。我在启动时 运行 AddonManager.getAddonByID
并在以后需要时使用数据。
插件-SDK
在addon SDK中,您可以从以下位置获取它们:
var self = require("sdk/self");
var version = self.version;
自举插件
正如下面所指出的 Noitidart, certain addon data is available via data.id
, data.version
, data.installPath
, data.resourceURI
and data.oldVersion
in the Bootstrapped extensions
function startup(data, reason) { }
function shutdown(data, reason) { }
function install(data, reason) { }
function uninstall(data, reason) { }
如果您正在制作一个 bootstrap 插件,则可以通过 aData
参数中的 startup
函数获得该版本。我所做的是在启动时将 aData
存储到全局以供将来使用。
var globalAData;
function startup(aReason, aData) {
globalAData = aData;
var version = aData.version;
}
发件人:https://gist.github.com/Noitidart/9025999#comment-1120821
这是 aData
中包含的内容:
Key Value
id Bootstrap-Skeleton@jetpack
version 1.1
installPath [xpconnect wrapped nsIFile]
resourceURI [xpconnect wrapped nsIURI]
oldVersion 1.1
关于 oldVersion
键的注意事项:仅当有先前安装的实例时才可用,可能与本例中的版本相同。在重新安装和类似情况下,version
和 oldVersion
相等。
对于非bootstrap(经典的XUL Overlay),它比我想象的要容易。
实际上,您通过异步 AddonManager.getAddonByID
调用引入新的加载函数,'interrupt' 由 document load
事件触发的现有加载函数 (main_load)。等待它完成,然后继续使用您以前的函数加载您的附加组件(刚刚重命名,在本例中为 main_load_post,表明我们想在加载后调用它)。
在main.js
(对应main.xul
文件):
var myAddon = null;
window.addEventListener( 'load', main_load, false );
以及同一文件中的其他地方(其中 ID 是您的插件 ID):
// new main_load function to interrupt loading and assign to myAddon.
function main_load ( ) {
AddonManager.getAddonByID( 'ID', function ( addon ) {
myAddon = addon;
main_load_post( );
} );
}
// formerly 'main_load', renamed and called by the async callback.
function main_load_post ( ) {
// main addon initialization: load prefs, setup pref observer, etc.
// Note: your prefs.observe function will call something like main_load_prefs( ), etc
}
function main_load_prefs ( ) {
// successful myAddon reference
console.log( '***VERSION***: ' + myAddon.version );
}
// NOTE: Any myAddon reference must come from a call chain traced back to main_load_post( ).
// NOTE: You can't put myAddon references in global space outside function calls,
// because the AddonManager callback may not have fired.
// console.log( '***VERSION***: ' + myAddon.version ); // This will always fail.
// NOTE: Nor can you call the function containing myAddon in a global context.
// main_load_prefs( ); // This will always fail.
我的扩展有 package.json 个包含安装属性的文件。 有没有办法获取插件版本
插件管理器
你可以从AddonManager
模块中获取它
Components.utils.import('resource://gre/modules/AddonManager.jsm');
AddonManager.getAddonByID("YOUREXTENSIONID", function(addon) {
var version = addon.version;
});
更多信息:
AddonManager
Code Samples
注:(来自AddonManager)
The majority of the methods are asynchronous meaning that results are delivered through callbacks passed to the method. The callbacks will be called just once but that may be before or after the method returns.
因此可能无法立即获得结果。我在启动时 运行 AddonManager.getAddonByID
并在以后需要时使用数据。
插件-SDK
在addon SDK中,您可以从以下位置获取它们:
var self = require("sdk/self");
var version = self.version;
自举插件
正如下面所指出的 Noitidart, certain addon data is available via data.id
, data.version
, data.installPath
, data.resourceURI
and data.oldVersion
in the Bootstrapped extensions
function startup(data, reason) { }
function shutdown(data, reason) { }
function install(data, reason) { }
function uninstall(data, reason) { }
如果您正在制作一个 bootstrap 插件,则可以通过 aData
参数中的 startup
函数获得该版本。我所做的是在启动时将 aData
存储到全局以供将来使用。
var globalAData;
function startup(aReason, aData) {
globalAData = aData;
var version = aData.version;
}
发件人:https://gist.github.com/Noitidart/9025999#comment-1120821
这是 aData
中包含的内容:
Key Value
id Bootstrap-Skeleton@jetpack
version 1.1
installPath [xpconnect wrapped nsIFile]
resourceURI [xpconnect wrapped nsIURI]
oldVersion 1.1
关于 oldVersion
键的注意事项:仅当有先前安装的实例时才可用,可能与本例中的版本相同。在重新安装和类似情况下,version
和 oldVersion
相等。
对于非bootstrap(经典的XUL Overlay),它比我想象的要容易。
实际上,您通过异步 AddonManager.getAddonByID
调用引入新的加载函数,'interrupt' 由 document load
事件触发的现有加载函数 (main_load)。等待它完成,然后继续使用您以前的函数加载您的附加组件(刚刚重命名,在本例中为 main_load_post,表明我们想在加载后调用它)。
在main.js
(对应main.xul
文件):
var myAddon = null;
window.addEventListener( 'load', main_load, false );
以及同一文件中的其他地方(其中 ID 是您的插件 ID):
// new main_load function to interrupt loading and assign to myAddon.
function main_load ( ) {
AddonManager.getAddonByID( 'ID', function ( addon ) {
myAddon = addon;
main_load_post( );
} );
}
// formerly 'main_load', renamed and called by the async callback.
function main_load_post ( ) {
// main addon initialization: load prefs, setup pref observer, etc.
// Note: your prefs.observe function will call something like main_load_prefs( ), etc
}
function main_load_prefs ( ) {
// successful myAddon reference
console.log( '***VERSION***: ' + myAddon.version );
}
// NOTE: Any myAddon reference must come from a call chain traced back to main_load_post( ).
// NOTE: You can't put myAddon references in global space outside function calls,
// because the AddonManager callback may not have fired.
// console.log( '***VERSION***: ' + myAddon.version ); // This will always fail.
// NOTE: Nor can you call the function containing myAddon in a global context.
// main_load_prefs( ); // This will always fail.