alexey: Rollover Script II

hi zusammen

habe gestern ein posting gemacht, bezüglich einem schlanken und möglichst einfachen rollover skript. habe auch einen tipp erhalten (thanks) und gleich ausprobiert. leider will's noch nicht so richtig. hat jemand eine idee, was ich hier falsch gemacht habe?

<html>
<head>
<title>Seite mit Rollover-Bild</title>
<script language="JavaScript">
<!--
function changePic(Name,toDo)
{ if (toDo=='on')document[Name].src = "images/"+Name+"h.jpg";
else document[Name].src = "images/"+Name+".jpg";
}
//--> </script>
</head>
<body>
<a href="index.htm" onMouseOver="changePic(Bild,on)" onMouseOut="changePic(Bild,off)"><img src="datei.jpg" name="Bild"> </a>
</body>
</html>

danke für einen hinweis. mein gestriges posting findet ihr übrigens ein bisschen weiter unten.

gruss - alexey

  1. Hallo.

    { if (toDo=='on')document[Name].src = "images/"+Name+"h.jpg";

    ^^^^^^^^^^^^^^^^^^
    Eher: document.images[Name].src

    else document[Name].src = "images/"+Name+".jpg";

    Hier auch.

    Gruß
    Norbert

    1. hallo norbert

      danke für den hinweis. habe das mal versucht, aber funktioniert immer noch nicht.

      <html>
      <head>
      <title>Seite mit Rollover-Bild</title>
      <script language="JavaScript">
      <!--
      function changePic(Name,toDo)
      { if (toDo=='on')document.images[Name].src = "images/"+Name+"h.jpg";
      else document.images[Name].src = "images/"+Name+".jpg";
      }
      //--> </script>
      </head>
      <body>
      <a href="index.htm" onMouseOver="changePic(Bild,on)" onMouseOut="changePic(Bild,off)"><img src="datei.jpg" name="Bild"> </a>
      </body>
      </html>

      sonst vielleicht noch eine idee?

      gruss - alexey

      1. Hallo.

        danke für den hinweis. habe das mal versucht, aber funktioniert immer noch nicht.

        <script language="JavaScript">

        ^^^^^^^^^^^^^^^^^^^^^
        Hat zwar nichts mit dem Nichtfunktionieren des Scripts zu tun, aber type="text/javascript" ist trotzdem hübscher.

        onMouseOver="changePic(Bild,on)"

        onmouseover="changePic('Bild','on')"

        onMouseOut="changePic(Bild,off)"

        onmouseover="changePic('Bild','off')"

        Die Werte, die die Parameter zugewiesen bekommen, müssen Zeichenketten sein. Bild und on/off existieren als Variablen nicht, daher die Fehlermeldung.

        Gruß
        Norbert

        1. hallo.

          habe das auch versucht, aber es etwas funktioniert irgendwie immer noch nicht. hast du sonst noch eine idee - sorry, aber ich habe wirklich keine ahnung von javascript.

          <html>
          <head>
          <title>Seite mit Rollover-Bild</title>
          <script type="text/javascript">
          <!--
          function changePic(Name,toDo)
          { if (toDo=='on')document.images[Name].src = "images/"+Name+"h.jpg";
          else document.images[Name].src = "images/"+Name+".jpg";
          }
          //--> </script>
          </head>
          <body>
          <a href="index.htm" onmouseover="changePic('Bild','on')" onmouseout="changePic('Bild','off')"><img src="datei.jpg" name="Bild"> </a>
          </body>
          </html>

          gruss - alexey

          1. habe das auch versucht, aber es etwas funktioniert irgendwie immer noch nicht.

            Wie wäre es mit einer Fehlerbeschreibung, die vielleicht etwas genauer ist?
            Es funktioniert im Übrigen, bist du dir sicher, dass dein Standard-Bild "Bild.jpg" und dein Mouseover-Bild "Bildh.jpg" heißt, und dass sich selbige im Ordner "images" befinden?

            Gruß
            Norbert

            1. hi norbert

              Wie wäre es mit einer Fehlerbeschreibung, die vielleicht etwas genauer ist?

              sorry, aber ich erhalte keine fehlermeldung. es erscheint nur das «Bild.jpg». bei mouseover geschieht gar nichts.

              Es funktioniert im Übrigen, bist du dir sicher, dass dein Standard-Bild "Bild.jpg" und dein Mouseover-Bild "Bildh.jpg" heißt, und dass sich selbige im Ordner "images" befinden?

              ja, das ist der fall!

              gruss - alexey

              1. noch zur ergänzung:

                habe das skript gerade in einem pc browser getestet. da erscheint die fehlermeldung:

                laufzeitfehler…
                auf zeile 8

                gruss - alexey

              2. So, anders:

                <html><head><title>Bilder-Dingen</title>
                <script type="text/javascript">
                <!--
                 function changePic(Name,toDo)
                  {
                   var img = new Image();
                   img.src = "images/" + Name + ((toDo == "on") ? "h.jpg" : ".jpg");
                   document.images[Name].src = img.src;
                  }
                //-->
                </script>
                </head><body>
                <a href="index.htm" onmouseover="changePic('Bild','on')" onmouseout="changePic('Bild','off')"><img src="images/Bild.jpg" alt="" name="Bild"></a>
                </body></html>

                Das kann sogar Netscape 3.

                Gruß
                Norbert

                1. hi norbert

                  vielen dank für dein neues skript. das problem lag nicht am ersten skript, sondern das sich durch cut/past immer sonderzeichen eingeschlichen haben, welche fehler verursacht haben.

                  aber jetzt klappts wunderbar (beide beispiele). danke nochmals für deine tipps und deine ausdauer ;-).

                  gruss - alexey

      2. Hallo,

        danke für den hinweis. habe das mal versucht, aber funktioniert immer noch nicht.
        <a href="index.htm" onMouseOver="changePic(Bild,on)" onMouseOut="changePic(Bild,off)"><img src="datei.jpg" name="Bild"> </a>

        Fehlermeldung: document.images[...] is Null or not an object
        Fehlermeldung: on is undefined
        Fehlermeldung: off is undefined
        Gründe:
        changePic(Bild,on)
        Bild wird als Variable angesehen, die den Wert undefined hat.
        on wird als Variable angesehen, die den Wert undefined hat.
        off wird als Variable angesehen, die den Wert undefined hat.

        <html>
        <head>
        <title>Seite mit Rollover-Bild</title>
        <script type="text/javascript">
        <!--
        function changePic(Name,toDo) {
          if (toDo=='on') {
             document.images[Name].src = "images/"+Name+"h.jpg";
             document.images[Name].alt = "Bildh.jpg";
          }
          else {
             document.images[Name].src = "images/"+Name+".jpg";
             document.images[Name].alt = "Bild.jpg";
          }
        }
        //--> </script>
        </head>
        <body>
        <a href="index.htm" onMouseOver="changePic('Bild',on);" onMouseOut="changePic('Bild','off');"><img src="datei.jpg" name="Bild" alt="datei.jpg"></a>
        </body>
        </html>

        Was mich noch wundert:
        Am Anfang heißt das Bild: datei.jpg.
        Bei MouseOver wird draus: Bildh.jpg.
        Bei MouseOut wird draus: Bild.jpg.
        Ist das so gewollt?

        Gruß

        Axel

        1. hi axel

          besten dank für deine hinweise. leider verstehe ich von javascript sogut wie nichts. ich habe dein script mal versucht zu testen, aber auch dieses wollte bei mir nicht?! das mit dem bildnamen habe ich noch korrigiert - war natürlich nicht absicht.

          Was mich noch wundert:
          Am Anfang heißt das Bild: datei.jpg.
          Bei MouseOver wird draus: Bildh.jpg.
          Bei MouseOut wird draus: Bild.jpg.
          Ist das so gewollt?

          nö, natürlich nicht (siehe oben). läuft dein script bei dir? und wie könnte ich das für mehrere grafiken, am einfachsten modifizieren?

          gruss - alexey

          1. Hallo,

            nö, natürlich nicht (siehe oben). läuft dein script bei dir? und wie könnte ich das für mehrere grafiken, am einfachsten modifizieren?

            Was genau geht denn nicht?

            Einen Fehler habe ich auch noch gemacht, weil ich die Fehlermeldungen nochmal testen wollte. Bei changePic('Bild','on') muss on natürlich auch in '' stehen.
            <a href="index.htm" onMouseOver="changePic('Bild','on');" onMouseOut="changePic('Bild','off');"><img src="datei.jpg" name="Bild" alt="datei.jpg"></a>

            Also, was genau passiert jetzt bei Dir?
            Wird das erste Bild angezeigt?
            Was passiert bei MouseOver?
            Was passiert bei MouseOut?

            Gruß

            Axel

            1. hi

              Was genau geht denn nicht?

              das bild wechselt sich nicht bei mouseover. es passiert gar nix - keine fehlermeldung oder so.

              Einen Fehler habe ich auch noch gemacht, weil ich die Fehlermeldungen nochmal testen wollte. Bei changePic('Bild','on') muss on natürlich auch in '' stehen.
              <a href="index.htm" onMouseOver="changePic('Bild','on');" onMouseOut="changePic('Bild','off');"><img src="datei.jpg" name="Bild" alt="datei.jpg"></a>

              das habe ich noch bemerkt. aber trotz dieser änderung wills noch nicht. aber schau nir doch nochmals meinen code an:

              <html>
              <head>
              <title>Seite mit Rollover-Bild</title>
              <script type="text/javascript">
              <!--
              function changePic(Name,toDo) {
                if (toDo=='on') {
                   document.images[Name].src = "images/"+Name+"h.jpg";
                   document.images[Name].alt = "Bildh.jpg";
                }
                else {
                   document.images[Name].src = "images/"+Name+".jpg";
                   document.images[Name].alt = "Bild.jpg";
                }
              }
              //--> </script>
              </head>
              <body>
              <a href="index.htm" onMouseOver="changePic('Bild','on');" onMouseOut="changePic('Bild','off');"><img src="Bild.jpg" name="Bild" alt="Bild.jpg"></a>
              </body>
              </html>

              Also, was genau passiert jetzt bei Dir?
              Wird das erste Bild angezeigt?

              ja, das funktioniert.

              Was passiert bei MouseOver?

              nicht

              Was passiert bei MouseOut?

              ebenfalls nichts

              habe ich irgendwo noch einen fehler?

              gruss - alexey

              1. Also, was genau passiert jetzt bei Dir?
                Wird das erste Bild angezeigt?
                ja, das funktioniert.

                Was passiert bei MouseOver?
                nicht
                Was passiert bei MouseOut?
                ebenfalls nichts

                Ist das der Netscape-Navigator?
                Ruf mal auf:
                Bearbeiten - Einstellungen - Erweitert
                und mach einen Haken bei:
                JavaScript für Navigator aktivieren

                Gruß

                Axel

                1. hi axel

                  Ist das der Netscape-Navigator?
                  Ruf mal auf:
                  Bearbeiten - Einstellungen - Erweitert
                  und mach einen Haken bei:
                  JavaScript für Navigator aktivieren

                  nein, ist explorer. aber ich hab das problem erkannt. lag am copy/past - haben sich immer sonderzeichen eingeschlichen. auch dein skript funktioniert jetzt wunderbar.

                  nochmals herzlichen dank!

                  gruss - alexey