Mon extension a un fichier Install.rdf contenant le numéro de version similaire à ci-dessous. Je veux extraire le contenu de la version
4 Réponses :
Je n'ai pas la réponse complète, mais j'ai trouvé Extension prolongée et a examiné Le code source tel qu'il semblait être un bon point de départ et de googler certaines des méthodes contenues dans ce que j'ai trouvé cet extrait sur MDC . La clé de code semble être ceci: vous devriez remplacer Firefox 4 nécessite un code différent, voir l'autre réponse. P> P> extension@guid.net code> avec l'identifiant approprié pour votre extension. P >
Excellent. C'est une réponse complète! J'ai dû initialiser mon propre objet GextryGanager.
Eh bien, ce n'était pas une réponse complète parce que je n'étais pas vraiment sûr que cela fonctionnerait :)
Je ne sais aucun avantage à le faire d'une manière ou d'une autre, mais c'est même plus court: let version = application.extensions.get ('extension @ id'). Version; code> (de < Un href = "http://stackoverflow.com/questions/1965310/deectting-firefox-extension-version" Titre = "Détection de la version de l'extension Firefox"> Stackoverflow.com/questions/1965310/... )
@MatrixFrom: L'API de carburant que vous mentionnez a également changé dans Firefox 4, car AddonManager API est maintenant asynchrone. Donc, aucun avantage pour cela, autrement que d'économiser quelques octets en échange d'une API moins testée et moins connue.
dans Firefox 4 (Gecko 2) L'API a changé, donc si vous devez porter à Firefox 4, il s'agit du code (de ici ):
try { // Firefox 4 and later; Mozilla 2 and later Components.utils.import("resource://gre/modules/AddonManager.jsm"); AddonManager.getAddonByID("extension-guid@example.org", function(addon) { alert("My extension's version is " + addon.version); }); } catch (ex) { // Firefox 3.6 and before; Mozilla 1.9.2 and before var em = Components.classes["@mozilla.org/extensions/manager;1"] .getService(Components.interfaces.nsIExtensionManager); var addon = em.getItemForID("extension-guid@example.org"); alert("My extension's version is " + addon.version); }
Un grand changement est que l'API Firefox 4 est asynchrone, tandis que Firefox 3 API est synchrone. Si vous avez besoin de blocage, mettez le code dépendant dans le rappel.
@CREND KING: C'est vrai et une solution de contournement imparfaite consiste à enregistrer le numéro de version quelque part dans l'extension lorsque l'extension démarre et récupérez de manière synchrone lorsque vous en avez besoin. Les appels asynchrones sont vraiment infectieux.
La version doit fonctionner correctement avec votre approche, car il s'agit d'une propriété de l'extension. Toutefois, lorsque vous essayez d'obtenir des informations associées à l'utilisateur, telles que l'emplacement installé de l'extension, vous ne pouvez pas contourner AddonManager ("Profd / Extensions /
Un moyen alternatif d'émuler un appel synchrone consiste à utiliser nsithread.processnextEvent ( ) code>
. NSITHREADADMANAGER.CURENTTHADAD CODE>
est le bon fil.
Merci, cela m'a aidé aussi. Alors des roches!
avec add-on sdk c'est simple comme: p>
var version = nécessite ("sdk / self"). Version; code> p>
dans Extensions Web forts> Utilisez les éléments suivants: browser.runtime.getManifest().version