Jörg Heinicke: window.event.srcElement in Mozilla

Hallo,

ich habe mir vorgenommen, dass default.xsl von IE auch für Mozilla nutzbar zu machen. Die Transformation in XSLT hat schon jemand anderes erledigt, was mir noch fehlt, ist das Javascript. Und ich stolpere dabei über die Inkompatibilitäten der beiden Implementierungen.

Momentan scheint sich alles an window.event.srcElement fest zu machen, was in IE möglich ist, in Netscape/Mozilla nicht. Nun hat ein Beitrag aus dem Archiv hier ergeben, dass window.Event.target der entsprechende Ersatz ist. Aber schon hänge ich am nächsten Problem: e.className funktioniert nicht. Leider scheint es auch überhaupt keine Dokumentation bzgl. window.Event.target zu geben, die Suche im Netz blieb ziemlich erfolglos. Kann mir jemand helfen? Ist das nun der vollkommen falsche Ansatz oder stimmt zumindest schon mal die Richtung?

Jörg

function cl()
{
  e = window.event.srcElement;

// make sure we are handling clicks upon expandable container
  // elements
  if (e.className != "c")
  {
    e = e.parentElement;
    if (e.className != "c")
    {
      return;
    }
  }
  e = e.parentElement;

// call the correct funtion to change the collapse/expand state
  // and display
  if (e.className == "e")
    ch(e);
  if (e.className == "k")
    ch2(e);
}

  1. Hallo Jörg.
    Du solltest Dich besser mit den verschiedenen Implementierungen der Event-Behandlung befassen.
    Nur soviel: beim IE ist das Event ein Object von window, also wie gesagt window.event, bei Netscape(4 und 6) ein Object das der Funktion übergeben wird, Du müsstest also function cl(ev) schreiben, dann hast Du über ev das Event zur Verfügung.
    e wär dann bei Dir ev.target.
    Beim NS 6 muss man aber immer aufpassen, dass dieses Target-Element auch wirklich das ist, das man braucht. Bei einem Link etwa, bekommt man den Text-Node, muss dann also, wenn man den Link will, den parent Node nehmen.

    Gute Quellen:
    http://www.webreference.com/js/column74/
    http://www.brainjar.com/dhtml/events/

    bzw auch etwas auf meiner Seite.

    LG Spiff