Mozilla's getting a new look. What do you think? https://mzl.la/brandsurvey

How To Pass an XPCOM Object to a New Window

Cette traduction est incomplète. Aidez à traduire cet article depuis l'anglais.

Un exemple plus utile est disponible dans le code sourcee: toolkit/components/help/content/contextHelp.js#61

Si vous voulez être en mesure d'appeler des fonctions au sein d'un objet XPCOM à partir du code d'une fenêtre XUL, vous pouvez le faire si vous passez l'objet XPCOM comme un des arguments de la méthode de création de la fenêtre Windows.

Par exemple

var ww = 
      Components.classes["@mozilla.org/embedcomp/window-watcher;1"].
            getService(Components.interfaces.nsIWindowWatcher);

var win = ww.openWindow(null,
      "chrome://myextension/content/debug.xul",
      "debug history", "chrome,centerscreen,resizable", myObject);

Notez dans cet exemple que myObject à la méthode openWindow(); vous pouvez passer tous objets XPCOM (ou toute autre valeur, en l'occurence) par ce moyen. Pour accéder à l'objet XPCOM à partir du code de la fenêtre, vous pouvez accéder au tableau des arguments de la fenêtre comme illustré dans l'exemple ci-dessous

Components.utils.reportError(String(window.arguments[0]));

This will produce output similar to "[xpconnect wrapped nsIMyXPCOMObject]".

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : tomcat_lechat
 Dernière mise à jour par : tomcat_lechat,