Konrad Rudolph: event.srcElement unter Mozilla

Hallo,
ich muß für ein Script auf die srcElement-Eigenschaft des event-Objekts zugreifen, um genau zu sein brauche ich seine id (also event.srcElement.id).
Unter Opera und IE ist das kein Problem. Mozilla mag das nicht und die JavaScript Console sagt, die Eigenschaft srcElement habe keine Members.

Meine Frage: wie könnte ich dies unter Mozilla emulieren, also die ID des Auslöserelements für ein Ereignis ermitteln?

Gruß,
KonRad -

  1. Hi!

    srcElement ist wiedermal eine MS-Erfindung. Mozilla benutzt DOM-Level2-Events http://www.w3.org/TR/DOM-Level-2-Events/ und dort heist das Äquivalent target (sollte Opera7 auch kennen). Allerdings must du hier vorsichtig sein, denn wenn du auf Text (oder ein anderes Kindelement) in diesem Element klickst, wird ein textnode zurückgegeben und nicht das Element. Deshalb solltest du, bevor du auf die id des Elements zugreifen willst, prüfen, ob du das Element oder doch den Text erwischt hast. Hast du den Text erwischt, so must du das Elternelement des Textes als angeklicktes Element betrachten, andernfalls kannst du direkt auf das Element zu greifen.

    Gruß Herbalizer

    --
    SELF-Code: (http://emmanuel.dammerer.at/selfcode.html)
    sh:( fo:) ch:? rl:( br:> n4:& ie:% mo:} va:} de:] zu:) fl:{ ss:) ls:& js:|
    1. Hallo,

      danke erst mal für die schnelle Antwort. Hilft, denke ich.

      srcElement ist wiedermal eine MS-Erfindung.

      wie so vieles. Aber solange es funktioniert...

      Allerdings must du hier vorsichtig sein, denn wenn du auf Text (oder ein anderes Kindelement) in diesem Element klickst, wird ein textnode zurückgegeben und nicht das Element.

      das ist doch im Opera/IE genauso, oder nicht? Dafür habe ich folgende recht gut funktionierende Funktion:

      \\ function check_all_parents(obj){
          if(obj == null)
              return false;

      if(obj.id == "popup")
              return true;

      return check_all_parents(obj.parentElement);
      }
      ///

      das müßte ich dann halt auch anpassen.

      Gruß,
      KonRad -

      PS: euch fehlt hier ein SelfCode-Tag: "Bin zum ersten (zweiten, dritten) Mal hier, aber der Platz rockt" fo:!