"JavaScript global property" permet d'enregistrer un composant XPCOM en tant que propriété supplémentaire de l'objet window. Cette propriété est accéssible via l'objet window ou seule de la même manière que l'on peut utiliser les propriétés document ou navigator.
Cette propriété est donc utilisable directement sans avoir besoin de l'instancier.
window.composant.faireQuelqueChose();
Au lieu de:
var composant = Components.classes["@xulfr.org/exemples/mon-composant;1"]
.getService(Components.interfaces.xfrIMonComposant);
composant.faireQuelqueChose();
Lors de l'enregistrement de votre composant avec nsIModule.registerSelf() vous devez appeller le gestionnaire des catégories pour lui dire d'ajouter une nouvelle entrée avec nsICategoryManager.addCategoryEntry()
var categories = Components.classes["@mozilla.org/categorymanager;1"]
.getService(Components.interfaces.nsICategoryManager);
categories.addCategoryEntry("JavaScript global property", "composant",
"@xulfr.org/exemples/mon-composant;1", true, true);
Par défaut cette propriété est du type nsISupports, vous devriez donc également implémenter nsIClassInfo afin d'éviter de devoir appeller QueryInterface() avant de pouvoir l'utiliser.
Télécharger l'exemple (Application XULRunner, 6 Ko)
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.