Manül: href und this.id

Hallo,

ich weiß, dass man es nicht machen soll, sondern das ganze über onClick lösen soll, aber mich würde einfach interessieren, warum folgendes nicht geht:

<a href="javascript:alert(this.id)" id="xyz">link</a>

da kommt dann nämlich ein alert mit "undefinded" raus.

Ich hab mich auch schon im Forum umgesehen, aber nix passendes gefunden.

Danke für die Hilfe

  1. Warum kapieren die meisten JS-Coder einfach nicht, dass JavaScript und Java NICHT das gleiche sind!!! Schon mal die Tatsache, dass JS _keine_ Programmiersprache ist, im Gegensatz zu Java, muss doch klar werden!

    1. Hallo,

      Warum kapieren die meisten JS-Coder einfach nicht, dass JavaScript und Java NICHT das gleiche sind!!!

      Also, ich kenne kaum einen "JS-Coder" dem der Unterschied nicht klar ist.

      Schon mal die Tatsache, dass JS _keine_ Programmiersprache ist, im Gegensatz zu Java, muss doch klar werden!

      *kopfschüttel*

      Diese Aroganz schon wieder ;-)

    2. Hi,

      Warum kapieren die meisten JS-Coder einfach nicht, dass JavaScript und Java NICHT das gleiche sind!!!

      warum kapieren die meisten[tm] Deutsch-Schreiber nicht, dass man Fragen mit genau einem Fragezeichen beendet, und dass auch Ausrufe nie mehr als ein Ausrufezeichen erhalten?

      Schon mal die Tatsache, dass JS _keine_ Programmiersprache ist,

      Hm, seit wann?

      Cheatah

      --
      X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
      X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
      X-Will-Answer-Email: No
      X-Please-Search-Archive-First: Absolutely Yes
  2. Hi,

    ich weiß, dass man es nicht machen soll, sondern das ganze über onClick lösen soll,

    it depends.

    aber mich würde einfach interessieren, warum folgendes nicht geht:
    <a href="javascript:alert(this.id)" id="xyz">link</a>
    da kommt dann nämlich ein alert mit "undefinded" raus.

    Streiche mal das ".id", dann wird Dir einiges klarer werden.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi,

      Hallo

      aber mich würde einfach interessieren, warum folgendes nicht geht:
      <a href="javascript:alert(this.id)" id="xyz">link</a>
      da kommt dann nämlich ein alert mit "undefinded" raus.

      Streiche mal das ".id", dann wird Dir einiges klarer werden.

      Aber _warum_ ist das so? Erzeugt "javascript:" eine Art eigenes JS-Objekt, wodurch "this" dann auf dieses referenziert?

      Cheatah

      Schöne, cu
        Capior

      1. Hi,

        Aber _warum_ ist das so? Erzeugt "javascript:" eine Art eigenes JS-Objekt,

        nein. Das "javascript:" ist ein Pseudo-Protokoll, es handelt sich also um eine URL. Eine solche besteht in ihrer Gesamtheit im window-Kontext.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Hi,

          Aber _warum_ ist das so? Erzeugt "javascript:" eine Art eigenes JS-Objekt,

          nein. Das "javascript:" ist ein Pseudo-Protokoll, es handelt sich also um eine URL. Eine solche besteht in ihrer Gesamtheit im window-Kontext.

          Ah, klar, logisch, wie mailto:, http:, callto:, etc.

          Verstösst ein onclick-Attribut _eigentlich_ nicht etwas gegen die Semantik von HTML? Sollte der Event eleganterweise nicht von js via document.getElementById("..").onclick = funktion; aufgerufen werden?

          Cheatah

          Schöne, cu
            Capior

          1. Hi,

            Ah, klar, logisch, wie mailto:, http:, callto:, etc.

            callto: kenne ich jetzt nicht, aber ja.

            Verstösst ein onclick-Attribut _eigentlich_ nicht etwas gegen die Semantik von HTML?

            Eigentlich ja. Würde es "onuse" o.ä. heißen, würde ich da noch eher drüber streiten wollen :-) Letztlich kann ich Event-Handler aber als Schnittstelle zu einem weiteren, optionalen Modul akzeptieren.

            Sollte der Event eleganterweise nicht von js via document.getElementById("..").onclick = funktion; aufgerufen werden?

            Ja, wenn es eleganterweise so ginge, was nicht nur wegen Problemen in diversen Browsern bezweifelt werden darf, sondern auch wegen der nicht zwangsläufig gegebenen leichten Identifizierbarkeit eines Elements. Im Zweifel ersetzt Du hier onclick durch id, was mindestens ebenso übel ist.

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
            1. Hi,

              Hi

              callto: kenne ich jetzt nicht, aber ja.

              Hab ich kürzlich gesehen: Skype unterstützt dieses "Protokoll".

              Verstösst ein onclick-Attribut _eigentlich_ nicht etwas gegen die Semantik von HTML?

              Eigentlich ja. Würde es "onuse" o.ä. heißen, würde ich da noch eher drüber streiten wollen :-) Letztlich kann ich Event-Handler aber als Schnittstelle zu einem weiteren, optionalen Modul akzeptieren.

              Ok, ja.

              Sollte der Event eleganterweise nicht von js via document.getElementById("..").onclick = funktion; aufgerufen werden?

              Ja, wenn es eleganterweise so ginge, was nicht nur wegen Problemen in diversen Browsern bezweifelt werden darf, sondern auch wegen der nicht zwangsläufig gegebenen leichten Identifizierbarkeit eines Elements. Im Zweifel ersetzt Du hier onclick durch id, was mindestens ebenso übel ist.

              Nunja, meistens sind doch gerade Objekte, die einen Event-Handler benötigen, sowieso etwas spezieller formatiert, sodass eine id meistens bereits vorhanden ist.

              Cheatah

              Schöne, cu
                Capior