Stefan M.: imagewechsel mit onClick und onMouseOver

Hallo Forum,
folgende 2 Probleme habe ich:

1. Das Auswechseln eines images mit onMouseOver funktioniert nur bei images mit einem Link, weil das event im <a>-Tag abgefragt wird. IE versteht dieses event auch auf dem <img>-Tag oder auf einem Button (mit <input type="image" src="weissichnich">), aber Netscape nicht. Wie kann ich das bei Netscape lösen, wenn ich keinen Link haben will? Kann man evtl. einen "leeren" Link angeben?

2. In meiner Navigationsleiste will ich den zuletzt gedrückten Button aktiv lassen, damit man sieht, welcher Punkt gerade ausgewählt ist. Muß ich dafür immer die ganze Menüleiste neu laden? Ich habe es mit einem Script probiert (image tauschen mit onClick-Event), aber dann funktioniert das nur solange, wie man über das Menü navigiert. Wenn man einmal den Zurück-Button des Browsers betätigt, dann ändert sich das Bild ja nicht mit.

Vielleicht kann mich jemand von meinen Sorgen erlösen.

Stefan

  1. Hi Stefan,

    1. Das Auswechseln eines images mit onMouseOver funktioniert nur bei images mit einem Link, weil das event im <a>-Tag abgefragt wird. IE versteht dieses event auch auf dem <img>-Tag oder auf einem Button (mit <input type="image" src="weissichnich">), aber Netscape nicht. Wie kann ich das bei Netscape lösen, wenn ich keinen Link haben will? Kann man evtl. einen "leeren" Link angeben?

    klar, entweder mit href="#" oder href="javascript:dummy();" wobei du dann noch eine vollkommen leere function dummy() anlegen mußt:

    <a href="#" onClick="if (document.all) this.blur();return true;" onMouseOver="window.status= 'hallo Welt!';" onMouseOut="window.status= '';">
    <img src="images/dummy.gif" alt="" border="0" width="100" height="100">
    </a>

    ist natürlich auch wieder 'n link, und damit dieser im IE nicht markiert wird bzw. bleibt, wenn man ihn clickt, muß man dafür sorgen, daß er den fokus wieder abgibt (blur).
    Jetzt kann man das image zwar noch anclicken, aber da die markierung nicht bestehen bleibt, ist das nicht so tragisch.

    1. In meiner Navigationsleiste will ich den zuletzt gedrückten Button aktiv lassen, damit man sieht, welcher Punkt gerade ausgewählt ist. Muß ich dafür immer die ganze Menüleiste neu laden? Ich habe es mit einem Script probiert (image tauschen mit onClick-Event), aber dann funktioniert das nur solange, wie man über das Menü navigiert. Wenn man einmal den Zurück-Button des Browsers betätigt, dann ändert sich das Bild ja nicht mit.

    ich hatte 'mal das gleiche problem, in verbindung mit frames. Ich habe jede seite mit einer id ausgestattet (also in einem script-bereich eine entspr. variable gesetzt), welche den menu-button angibt, der beim erscheinen der seite markiert sein soll. JEde seite ruft nun über onLoad mit seiner id als parameter eine function (im navigationsframe) auf, welche die markierung erzeugt (also z.b. das image austauscht). Leider sch%&$ viel arbeit und sicherlich nicht gerade wartungsfreundlich, aber eine andere möglichkeit ist mir bis jetzt auch nicht eingefallen :(

    ich hoffe, das hat wenigstens ein wenig geholfen ;)

    so ong...
    /*,*/
    Wowbagger

    1. Hallo Leute,

      klar, entweder mit href="#" oder href="javascript:dummy();" wobei du dann noch eine vollkommen leere function dummy() anlegen mußt:

      besser, wegen evtl. deaktiviertem JavaScript, ist hier href="#" und dann onClick=" ... return false;". Durch das "false" wird der Link bei aktiviertem JavaScript gar nicht erst ausgeführt, so daß wirklich nur das Bild gewechselt wird.

      Also statt:

      <a href="#" onClick="if (document.all) this.blur();return true;" onMouseOver="window.status= 'hallo Welt!';" onMouseOut="window.status= '';">

      lieber so:
      <a href="#" onClick="if(document.all) this.blur(); return false;" onIrgendwas="Wechsel Bild und so"><img src="..."></a>

      Hoffentlich läuft das wirklich so.
      CYa
      GONZO

      1. Hi Gonzo,

        besser, wegen evtl. deaktiviertem JavaScript, ist hier href="#" und dann onClick=" ... return false;". Durch das "false" wird der Link bei aktiviertem JavaScript gar nicht erst ausgeführt, so daß wirklich nur das Bild gewechselt wird.

        beim IE ist das alles einerlei, aber beim NN löst ein 'false' natürlich das berühmte 'sanduhr-problem'...hab' ich auf die schnelle nicht dran gedacht, sorry ;)

        so long...
        Wowbagger