Andreas Dölling: OOP: Probleme mit Schlüsselwort this im IE

Hallo JS-Freunde,

ich hatte vor einiger Zeit schon einmal ein Problem im Zusammenhang mit OOP und Events in Javascript hier gepostet.
Durch einen sehr guten Hinweis aus der JS-Newsgroup konnte ich das Problem immerhin für Netscape lösen.
Im Internet Explorer bleibt das Problem bestehen: wenn ich einen Event mit einer Methode eines Objektes verarbeiten will, so kann ich innerhalb der Methode zwar wunderbar auf das Event-Objekt zugreifen, aber leider verweist das Schlüsselwort "this" nicht mehr auf das Objekt, dem die Methode gehört.
Ein "alert(this.nodeName);" liefert mir "#document", d.h. "this" verweist nicht mehr auf das aktuelle Objekt, sondern auf das document-Objekt.....

Im Netscape Navigator hatte ich das Problem ursprünglich auch. Mit der Verwendung der Methode handleEvent() konnte ich das Ganze aber lösen - eigentlich ein "dirty trick", aber es klappt - leider aber kennt nur Netscape handleEvent().

Hat jemand von Euch eine Idee?

Danke auf jeden Fall für Euer Interesse!

Ciao,
Andreas

Zur Illustration die relevanten Bereiche meines Quellcodes:

//mit der folgenden Methode wird dem Controller-Objekt gesagt, ob er auf ein Ereignis lauschen soll oder nicht
Controller.prototype.listen = function (state) {
 if(state==true && this.listening==false) {
  if (document.addEventListener) {
   document.addEventListener("click", this, false);
  } else {
   document.onclick = this.handleEvent;
  }
  this.listening = true;
 } else if (state==false && this.listening==true) {
  if (document.removeEventListener) {
   document.removeEventListener("click", this, false);
  } else {
   document.onclick = null;
  }
  this.listening = false;
 }
}

// die Event-Verarbeitung
Controller.prototype.handleEvent = function (event) {
 if (!event) event = window.event;
        alert ("event.Target");
        alert (this.nodeName); // das aktuelle Controller-Objekt hat keine Property nodeName - Netscape liefert korrekterweise einen entsprechenden Fehler, IE spuckt "#document" aus...
        alert (this.clients.length); // clients ist eine Property des aktuellen Controller-Objekts - Netscape greift richtig darauf zu, IE nicht...
}