Fritz: onclick und onmouseover im Firefox

Hallo,

kennt jemand das Problem, das mouseevents im Firefox erst beim zweiten mal ausgelöst werden?

Der Code:
<a href = "bild_anim.gif" onclick="this.firstChild.src=this.href;return false;" onmouseover="onclick();return false;" onkeypress=""/> <img src="bild.jpg" alt="" title="klick mich ... " width="140" height="113" /></a>

Gruß Fritz

  1. Hallo Fritz.

    kennt jemand das Problem, das mouseevents im Firefox erst beim zweiten mal ausgelöst werden?

    Ist mir noch nicht unter gekommen, nein.

    Der Code:
    <a href = "bild_anim.gif" onclick="this.firstChild.src=this.href;return false;" onmouseover="onclick();return false;" onkeypress=""/> <img src="bild.jpg" alt="" title="klick mich ... " width="140" height="113" /></a>

    Was soll diese etwas merkwürdige Konstruktion bewirken, was erwartest du, was findet statt und wie lauten etwaige Fehlermeldungen?

    Dir ist bewusst, dass du hier ein leeres a-Element, ein img-Element und ein verwaistes schließendes Tag irgend eines a-Elementes hast?

    BTW: Im IE könntest du mit diesem Code Probleme bekommen, da der erste Kindknoten aus seiner Sicht hier ein Textknoten (das Leerzeichen) ist. Dieses kann folgerichtig kein src-Attribut haben.

    Einen schönen Samstag noch.

    Gruß, Ashura

    1. <a href = "bild_anim.gif" onclick="this.firstChild.src=this.href;return false;" onmouseover="onclick();return false;" onkeypress=""/> <img src="bild.jpg" alt="" title="klick mich ... " width="140" height="113" /></a>

      Hallo Ashura,

      Was soll diese etwas merkwürdige Konstruktion bewirken, was erwartest du, was findet statt und wie lauten etwaige Fehlermeldungen?

      Ich erwarte einen Bildwechsel von bild.jpg nach bild_anim.gif bei onclick und bei mouseover, und das findet auch statt (im IE, Firefox und Opera unter XP). Nur, wie gesagt, beim FF erst beim zweiten event.
      Keine Fehlermeldungen. Weder von der JavaScript Console des FF, noch vom W3C Validator.

      Dir ist bewusst, dass du hier ein leeres a-Element, ein img-Element und ein verwaistes schließendes Tag irgend eines a-Elementes hast?

      Nein. das a-Element enthält doch ein <img> und das </a> schließt das <a href>

      BTW: Im IE könntest du mit diesem Code Probleme bekommen, da der erste Kindknoten aus seiner Sicht hier ein Textknoten (das Leerzeichen) ist. Dieses kann folgerichtig kein src-Attribut haben.

      Wie gesagt: nicht im IE6 / WinXP

      Einen schönen Samstag noch.

      Ebenso.
      Fritz

      1. Hi,

        Keine Fehlermeldungen. Weder von der JavaScript Console des FF, noch vom W3C Validator.

        bei welchem DOCTYPE?

        Dir ist bewusst, dass du hier ein leeres a-Element, ein img-Element und ein verwaistes schließendes Tag irgend eines a-Elementes hast?
        Nein. das a-Element enthält doch ein <img>

        Nein, tut es nicht. Du hast das <a>-Element noch im Start-Tag geschlossen.

        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. Hallo,

          bei welchem DOCTYPE?

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

          Nein, tut es nicht. Du hast das <a>-Element noch im Start-Tag geschlossen.

          Oh verd...! ist beim tippen passiert, aber nur hier im Forum, nicht im Original. Tut mir leid.

          Gruß Fritz

          1. Hi,

            Oh verd...! ist beim tippen passiert,

            poste Code niemals anders als per Copy&Paste. Was hat eigentlich Deine Problemanalyse ergeben?

            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. Was hat eigentlich Deine Problemanalyse ergeben?

              Hallo

              Die mouseevents werden im Firefox erst beim zweiten mal (klicken bzw. mouseover) ausgelöst.
              Meine Frage dazu:
              kennt jemand diese Eigenheit des FF, oder ist das eine "Eigenheit" meines "merkwürdigen" Codekonstrukts? (NB: JavaScript kenn ich wirklich mehr vom Hörensagen, deshalb wohl find ich an dem Code nichts merkwürdig)

              Gruß Fritz

              --
              ie:( fl:( br:? va:) ls:< fo:| rl:? ss:{ de:> js:| mo:} zu:}
              http://webdesign.weisshart.de
      2. Hallo Fritz.

        Ich erwarte einen Bildwechsel von bild.jpg nach bild_anim.gif bei onclick und bei mouseover, und das findet auch statt (im IE, Firefox und Opera unter XP). Nur, wie gesagt, beim FF erst beim zweiten event.

        Kann ich nicht nachvollziehen.
        Mit korrigiertem Code funktioniert es im Fx 1.0.4 und 1.5b2.
        Firefox interpretiert deinen Code ebenso wie alle meine anderen Browser sehr exakt und sieht sich außer Stande, einem Leerzeichen einen neuen Wert für ein nicht vorhandenes und nicht zuweisbares src-Attribut zuzuweisen.

        Einen schönen Samstag noch.

        Gruß, Ashura

        1. Hallo,

          Kann ich nicht nachvollziehen.

          Was kannst Du nicht nachvollziehen. Die von mir geschilderte Funktion, oder den Fehler.

          ... sieht sich außer Stande, einem Leerzeichen einen neuen Wert für ein nicht vorhandenes und nicht zuweisbares src-Attribut zuzuweisen.

          Bitte hilf mir mit dieser Aussage aufs Pferd. Ich versteh Dich nicht.

          Gruß Fritz

          --
          ie:( fl:( br:? va:) ls:< fo:| rl:? ss:{ de:> js:| mo:} zu:}
          http://webdesign.weisshart.de
          1. Hallo Fritz.

            Kann ich nicht nachvollziehen.

            Was kannst Du nicht nachvollziehen. Die von mir geschilderte Funktion, oder den Fehler.

            Die Fehlfunktion von Fx. Wie gesagt habe ich deinen Code korrigiert: lies mein Posting noch einmal ganz genau.

            ... sieht sich außer Stande, einem Leerzeichen einen neuen Wert für ein nicht vorhandenes und nicht zuweisbares src-Attribut zuzuweisen.

            Bitte hilf mir mit dieser Aussage aufs Pferd. Ich versteh Dich nicht.

            Wenn du diesen Wink mit dem Zaunpfahl nicht verstehen kannst, solltest du dich mit den <http://de.selfhtml.org/javascript/objekte/node.htm@title=Grundlagen des DOM> beschäftigen, um zu verstehen, was du mit deinem Code versucht hast.

            Kurz umrissen: Es gibt mehrere verschiedene Arten von Knotentypen, manchen kann man Attribute verpassen und diese auch modifizieren.
            Du hast hier versucht einem _Textknoten_ ein src-Attribut zu verpassen und dieses zu verändern, was nicht möglich ist.

            Einen schönen Samstag noch.

            Gruß, Ashura

            1. Hallo Ashura,
              mal sehen, ob ich Dich jetzt verstanden hab:
              mein Code jetzt (und ich denke, _so_ hast Du ihn auch korrigiert:

              <a href="bild_anim.gif" onclick="this.firstChild.src=this.href;return false;" onmouseover="onclick();return false;" onkeypress=""><img src="bild.jpg" alt="" title="klick mich ... " width="140" height="113" /></a>

              Gruß Fritz

              --
              ie:( fl:( br:? va:) ls:< fo:| rl:? ss:{ de:> js:| mo:} zu:}
              http://webdesign.weisshart.de
              1. Hallo Fritz.

                mal sehen, ob ich Dich jetzt verstanden hab:
                mein Code jetzt (und ich denke, _so_ hast Du ihn auch korrigiert:

                Ganz recht.

                <a href="bild_anim.gif" onclick="this.firstChild.src=this.href;return false;" onmouseover="onclick();return false;" onkeypress=""><img src="bild.jpg" alt="" title="klick mich ... " width="140" height="113" /></a>

                Na also.
                Wenn du nun noch erklären könntest, wozu du einen leeren onkeypress-Eventhandler benötigst..?

                Zudem ist der onclick-Eventhandler teilweise eigentlich überflüssig.
                So bald man mit der Maus über den Link fährt, wird dein kleines Skript ausgeführt, auch wenn noch gar nicht geklickt wurde.
                Im Grunde würde also das return false im onclick-Handler genügen, um das Ausführen des Links bei aktiviertem JS zu unterbinden.
                Im onmouseover-Eventhandler wiederum ist selbiges überflüssig, da hier sonst keine weitere Aktion zu unterbinden ist.

                Einen schönen Samstag noch.

                Gruß, Ashura

                1. Hallo,

                  Na also.

                  Manchmal dauerts halt ein bißchen länger - zumindest bei mir ;-)

                  Wenn du nun noch erklären könntest, wozu du einen leeren onkeypress-Eventhandler benötigst..?

                  BF: für Tastaturbenutzer

                  Zudem ist der onclick-Eventhandler teilweise eigentlich überflüssig.

                  und das nicht nur "teilweise eigentlich":

                  <a href="bild_anim.gif" onmouseover="this.firstChild.src=this.href;return false;" onkeypress=""><img src="bild.jpg" alt="" title="klick mich ... " width="140" height="113" /></a>

                  Das jetzt scheinbar unsinnige title="klick mich..." bleibt dennoch drin: bei Modemanbindung dauert das Laden des 2. Bildes u.U. länger. Nach einem Klick warten, daß etwas passiert, ist irgendwie logischer, als auf das Bild zu starren, nur weil die Maus irgendwann mal zufällig drüber gefahren ist.
                  Aber das ganze ist ohnehin nur Fingerübung - und ich hab mal wieder was dazu gelernt hier im Forum :-)

                  Gruß Fritz

                  --
                  ie:( fl:( br:? va:) ls:< fo:| rl:? ss:{ de:> js:| mo:} zu:}
                  http://webdesign.weisshart.de
                  1. Hallo,
                    Korrektur, falls diesen thread mal jemand im Archiv findet:

                    <a href="bild_anim.gif" onclick="this.firstChild.src=this.href;return false;" onmouseover="onclick()" onkeypress=""><img class="bildallg" src="bild.jpg" alt="" title="klick mich ... " width="140" height="113" /></a>

                    zu bewundern ist das "Kunstwerk" übrigens hier

                    Gruß Fritz

                    --
                    ie:( fl:( br:? va:) ls:< fo:| rl:? ss:{ de:> js:| mo:} zu:}
                    http://webdesign.weisshart.de