A more useful example is available in the source code: toolkit/components/help/content/contextHelp.js#61
If you want to be able to call functions within an XPCOM object from a XUL window's code, you can do so if you pass the XPCOM object as one of the arguments to the window creation method.
For example:
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);
Note in this example that myObject
is passed to the openWindow()
method; you can pass any XPCOM object (or any other value, for that matter) in this way. To access the XPCOM object from the window's code, you can access the window.arguments[]
array, as shown in the example below:
Components.utils.reportError(String(window.arguments[0]));
This will produce output similar to "[xpconnect wrapped nsIMyXPCOMObject]
".