Hallo,
document.getElementById("ebene_weiss").attachEvent("onclick", handler);
alert(this.name);
Bei der schwarzen Ebene erhalte ich den Namen des Windowsobjektes.
Wenn ich mich recht entsinne, hast du die Frage schon einmal gestellt. Ich weiß nicht recht, was du für eine Antwort erwartest. Es hat offenbar keinen besonderen Grund, sondern »ist nun einmal so«. Man könnte es so erklären, dass die Funktion beim Speichern in der Event-Handler-Eigenschaft onclick eine Methode eben dieses Objekts ist. Bei dessen Aufruf (elementobjekt.onclick() sozusagen) zeigt this logischerweise auf das Elementobjekt. Bei attachEvent ist die Funktion nie nach außen hin eine Methode des Elementobjekts, sie wird im Kontext des window-Elements ausgeführt, wie normale Funktionen im globalen Geltungsbereich ebenfalls. Das ist aber nur eine Theorie.
Du willst wahrscheinlich darauf hinaus, das Verhalten zu ändern, sodass du bei einem mit attachEvent vergebenen Event ebenfalls über this auf das Element zugreifen kannst, bei dem der Event registriert wurde. Dazu hatte ich schon letztens einiges ausprobiert und recherchiert, war aber ebenfalls nicht weitergekommen. Vermutlich gibt es keine Möglichkeit.
Mathias