Using observers: Difference between revisions
From MozillaZine Knowledge Base
Jump to navigationJump to search
No edit summary |
(No difference)
|
Revision as of 16:45, 25 October 2004
Observer class
function myObserver() { this.register(); } myObserver.prototype = { observe: function(subject, topic, data) { // Do your stuff here. }, register: function() { var observerService = Components.classes["@mozilla.org/observer-service;1"] .getService(Components.interfaces.nsIObserverService); observerService.addObserver(this, "myTopicID", false); }, unregister: function() { var observerService = Components.classes["@mozilla.org/observer-service;1"] .getService(Components.interfaces.nsIObserverService); observerService.removeObserver(this, "myTopicID"); } }
Instantiate & Register
Do the following in your init function (probably an onload handler) for each window:
var observer = new myObserver(); observer.register();
To do things cleanly, you should also unregister your observer when the window is closed.
Notify all observers
Components.classes["@mozilla.org/observer-service;1"] .getService(Components.interfaces.nsIObserverService) .notifyObservers(null, "myTopicID", "someAdditionalInformationPassedAs'Data'Parameter");