christian fritzkowski: dynamische buttons mit java script

hallo ihr alle :-)

ich habe ein problem. wir wir alle wissen ist ein javascript, was mit dem mousover befehl die button images austauscht unter ne3 und ne4, sowie ie4 kein problem. nur der dumme ie3 kann diese sache nicht. naja, ich will nicht ueber sinn und unsinn eines browsers oder ueber die verwendung von java script diskutieren, sondern eine schoene webseite bauen :-)

meine frage also:

ich habe eine grafik (a) die beim ueberfahren mit dem mauszeiger eine neben sich stehende grafik (b) veraendert. diese enthaelt informationen. wird die eine grafik (a) nicht ueberfahren, enthaelt grafik b keine informationen. so schoen so gut. beim ie3 moechte ich jetzt allerdings erreichen das er (da er ja kein mouseover befehl hat) die grafik b mit informationen schon anzeigt. wenn ich naemlich die seite jetzt mit dem ie3 betrachte bleibt grafik b natuerlich ohne infos, weil ja so die eigentliche grafik ist (b ist leer bzw. einfach weiss)  und ihre informationen erst mit dem ueberfahren der grafik a anzeigt.   puhhh schwierig zu erklaeren :) aber vielleicht kann mir ja einer helfen. waere echt toll. btw.
java script ist aber immer eingeschaltet :-) also eine loesung fuer "java script off" brauch ich nicht.

so viel und kompliziert geschrieben....waer aber toll wenn mir einer nen ratschlag geben koennte

danke

cf

  1. ich habe eine grafik (a) die beim ueberfahren mit dem mauszeiger eine neben sich stehende grafik (b) veraendert. diese enthaelt informationen. wird die eine grafik (a) nicht ueberfahren, enthaelt grafik b keine informationen. so schoen so gut. beim ie3 moechte ich jetzt allerdings erreichen das er (da er ja kein mouseover befehl hat) die grafik b mit informationen schon anzeigt. wenn ich naemlich die seite jetzt mit dem ie3 betrachte bleibt grafik b natuerlich ohne infos, weil ja so die eigentliche grafik ist (b ist leer bzw. einfach weiss)  und ihre informationen erst mit dem ueberfahren der grafik a anzeigt.   puhhh schwierig zu erklaeren :) aber vielleicht kann mir ja einer helfen. waere echt toll. btw.
    java script ist aber immer eingeschaltet :-) also eine loesung fuer "java script off" brauch ich nicht.

    Erstmal vornweg, der IE3 kennt sehr wohl den onMouseOver - Handler, allerdings kann er das
    damit aufgerufene Script bei Dir nicht ausführen, da er das images-Objekt nicht kennt.
    Dein Problem kannst du lösen, indem du den HTML-Code an der entsprechenden Stelle (innerHTML) über ein Script dynamisch erzeugst. Dann steht die Erklärung im IE3 von vornherein da, ansonten wird sie durch ein onMouseOver-erzeugtes Bild erst beim entsprechenden Event angezeigt.
    Folgendes funktioniert nachweislich, wenn Du beim einfügen über keine Fallstricke fällst:

    <HEAD>
    <SCRIPT LANGUAGE="JavaScript">
    if(document images)
    {
    NeuBild = new Image();
    NeuBild.src = "Erklärung.gif";
    }
    function change()
    {
    if(document.images)
    document.images.tauschbild.src = NeuBild.src;
    }
    </SCRIPT>
    </HEAD>
    <BODY>
    ...
    <BR>jede Menge HTML-Code<BR>
    ...
    <A HREF="sonstwo.htm" onMouseOver="change()">
    <IMG SRC="auslöser.gif">
    </A>
    <SCRIPT LANGUAGE="JavaScript">
    if(document.images)
    document.write('<IMG SRC="ohneErklärung.gif" NAME="tauschbild">');
    else
    document.write('<IMG SRC="Erklärung.gif">');
    </SCRIPT>
    ...
    <BR>und wieder jede Menge HTML-Code<BR>
    ...
    </BODY>

    Schreib mal ob's geklappt hat.
    Tschau Ralph.

    1. Hallo,

      Erstmal vornweg, der IE3 kennt sehr wohl den onMouseOver - Handler, allerdings kann er das
      damit aufgerufene Script bei Dir nicht ausführen, da er das images-Objekt nicht kennt.

      Ja.

      Dein Problem kannst du lösen, indem du den HTML-Code an der entsprechenden Stelle (innerHTML) über ein Script dynamisch erzeugst. Dann steht die Erklärung im IE3 von vornherein da,

      Das stimmt natuerlich, hat aber IMHO einen Nachteil.
      Durch den per JS erzeugten HTML-Code zeigen Browser, die entweder ohne JS unterwegs sind oder wenigstens das Image-Objekt nicht kennen, gar nichts.
      Wenn ich richtig gucke, dann ist die JS-Generierung hier aber gar nicht notwendig.
      Schau mal, MSIE3 (auch Navi2) bleiben innerhalb der Funktion aussen vor, weil ja dort auch die Existenz des Image-Objekte abgefragt wird. Also kann doch die Funktion ruhig aufgerufen werden. Es passiert nur einfach nix bei diesen Browsern.

      function change()
      {
      if(document.images)
      document.images.tauschbild.src = NeuBild.src;
      }
      <A HREF="sonstwo.htm" onMouseOver="change()">

      Vorteil: Die Grafik selbst wird immer angezeigt, bei denen, die es koennen, wechselt sie, sonst bleibt sie halt einfach stehen.

      Christine

      1. Hallo Christine,

        Wenn ich richtig gucke, dann ist die JS-Generierung hier aber gar nicht notwendig.
        Schau mal, MSIE3 (auch Navi2) bleiben innerhalb der Funktion aussen vor, weil ja dort auch die Existenz des Image-Objekte abgefragt wird. Also kann doch die Funktion ruhig aufgerufen werden. Es passiert nur einfach nix bei diesen Browsern.

        function change()
        {
        if(document.images)
        document.images.tauschbild.src = NeuBild.src;
        }
        <A HREF="sonstwo.htm" onMouseOver="change()">

        Vorteil: Die Grafik selbst wird immer angezeigt, bei denen, die es koennen, wechselt sie, sonst bleibt sie halt einfach stehen.

        Also, wenn ich Christian richtig verstanden habe, soll an der Stelle, wo die Wechselgrafik b ist normal erstmal gar nix stehen, also eine glattweiße Grafik. Erst beim onMouseOver über einem anderen Bild a soll die Wechselgrafik b einen erklärenden Inhalt bekommen. Beim IE3, wo das Script nicht funktioniert, soll die Erklärung sofort dastehen. Und ich denke das funktioniert so ganz gut.
        Es sollte gleich beim Laden der Seite im Falle des IE3 eine andere Grafik dastehen als bei einem anderen Browser, ansonsten Erklärung exitus, weil glattweiß.
        Man könnte natürlich auch von vornherein lediglich die erklärende Grafik einbinden und bei allen anderen Browsern als dem IE3 beim Einlesen der Seite die erklärende Grafik durch die glattweiße ersetzen, was dann später im Falle des onMouseOver - Events wieder umgekehrt
        würde. Kommt aber das selbe bei raus.
        Christian kann ja mal schreiben, ob er das so gemeint hat oder ob ich Ihn mißverstanden habe.
        Tschau Ralph.

        1. Also, wenn ich Christian richtig verstanden habe, soll an der Stelle, wo die Wechselgrafik b ist normal erstmal gar nix stehen, also eine glattweiße Grafik. Erst beim onMouseOver über einem anderen Bild a soll die Wechselgrafik b einen erklärenden Inhalt bekommen. Beim IE3, wo das Script nicht funktioniert, soll die Erklärung sofort dastehen. Und ich denke das funktioniert so ganz gut.
          Es sollte gleich beim Laden der Seite im Falle des IE3 eine andere Grafik dastehen als bei einem anderen Browser, ansonsten Erklärung exitus, weil glattweiß.
          Man könnte natürlich auch von vornherein lediglich die erklärende Grafik einbinden und bei allen anderen Browsern als dem IE3 beim Einlesen der Seite die erklärende Grafik durch die glattweiße ersetzen, was dann später im Falle des onMouseOver - Events wieder umgekehrt
          würde. Kommt aber das selbe bei raus.
          Christian kann ja mal schreiben, ob er das so gemeint hat oder ob ich Ihn mißverstanden habe.
          Tschau Ralph.

          jo  du hast das genau so verstanden ralph :-)  ich habe den vorschlag jetzt mal kopiert und werde mich morgen auf der arbeit mal dranwagen :-) wofuer wird man schliesslich bezahlt ;-) danke aber euch beiden fuer die schnelle hilfe (auch du christine :-)

          ich halt euch auf dem laufenden

          christian