Thomas Häber: Zufälliger Bannerwechsel mit Fehler.

Hallo "Erstmal",

Hab einen Javascript programmiert wo ich das 2.Bild im Body-Tag also [1] ansprechen will. Jenes soll per Zufall (Nach dem Datum-Zufalls-Javascript) verändert werden.

siehe Beispiel:

<html>
<head>
<script type="text/javascript" language="JavaScript">

Links0=new Image();
  Links0.src="../pics/partner_spiegel_468x60.gif";
  Links1=new Image();
  Links1.src="../pics/musik_populisten_468x60.gif";
  Links2=new Image();
  Links2.src="../pics/buecher_hoerbuecher_468x60.gif";

Jetzt = new Date();
  var Zeit = Jetzt.getTime();
  var Zahl = 0;
  Zahl = Zeit % 3;
  Bild = "Links" + Zahl;
  window.document.images[1].src=Bild.src;
  
</script></head>
<body>
<img src="unwichtiges-Bild.gif">
<img src="../pics/partner_spiegel_468x60.gif" width="468" height="60" border="0">
</body>
</html>

Nur werden die Variablen Links1 bis Links3 nicht richtig angesprochen und damit nicht verändert. Woran liegt das? Und wie kann man es richtig machen? Hab es mit Alert ausprobiert und dort wird "Links1 bis 3" richtig angezeigt.
Und falls das alles Quatsch ist; kann man es dann mit "Math.random" machen (dort gibt es ja nur Zufallszahlen zwischen 0 und 1) ?

  1. Hi Thomas,

    ich habe versucht mich in einen Browser "hineinzuversetzen" und vermute daher folgendes:

    Dein Browser lädt die Datei. Im Head stößt er auf ein JavaScript. Das arbeitet er ab. Im Zuge trifft er auf folgende Zeile:

    window.document.images[1].src=Bild.src;

    Aber er "kennt" images[1] noch gar nicht, kann damit also nix anfangen.

    Dann wird der HTML-Teil verarbeitet, und wo

    <img src="../pics/partner_spiegel_468x60.gif" width="468" height="60" border="0">

    steht, setzt er das Bild hin, und Basta.

    Hier eine Idee, wie es besser funktionieren dürfte: Definiere das fragliche Bild _nicht_ in HTML, notiere an die Stelle ein JavaScript, dass aufgrund Deiner Datumsroutine je nachdem über document.write die HTML-Referenz des passenden Bildes schreibt. Damit auch Leute mit ausgeschaltetem JavaScript was sehen, solltest Du direkt anschließend in einem <noscript>-Bereich nochmal ganz herkömmlich ein Bild Deiner Wahl (aber dann halt nicht veränderlich) referenzieren.

    HTH

    Grüße,

    Utz

  2. auch hallo

    <script type="text/javascript" language="JavaScript">

    denk an die brauser, die kein js haben oder verstehen .-) :
    <script type="text/javascript" language="JavaScript"><!--

    Links=new Array();
    Links[0]=new Image();
    Links[0].src="../pics/partner_spiegel_468x60.gif";
    Links[1]=new Image();
    Links[1].src="../pics/musik_populisten_468x60.gif";
    Links[2]=new Image();
    Links[2].src="../pics/buecher_hoerbuecher_468x60.gif";

    document.images['banner'].src=Links[Math.floor(Math.random()*3)].src;

    window.document.images[1].src=Bild.src;

    hier war dein eigentlicher fehler, bild war eine string-variable und kein image-objekt

    </script></head>
    <body>
    <img src="unwichtiges-Bild.gif">
    <img src="../pics/partner_spiegel_468x60.gif" width="468" height="60" border="0" name="banner">

    ich hab den bild n namen gegeben :-) [1] funzt auch, aber ich find namen sympathischer :-)

    </body>
    </html>

    cua

    n.d.p.

    1. Hi n.d.,

      hier war dein eigentlicher fehler, bild war eine string-variable und kein image-objekt

      Da hast Du besser aufgepasst als ich (s.o.), hab ich doch direkt übersehen. Mein Posting (s.o.) bitte also direkt aus dem Gedächtnis streichen!

      Grüße,

      Utz

    2. </script></head>

      muss natuerlich heissen

      //--></script></head>
      (wegen <script....><!--)

      cua

      n.d.p.

    3. Hallooooo Zufall wo bist ??, hallooo Banerwechsel ?????? :->

      Tja hab dein Javascript eingebaut und es funktioniert -nichts-. Es ist kein Wechsel des Bildes bemerkbar, weder mit MS Internet Explorer noch Netscape.
      Tja ich weiß nicht woran es liegt hier nochmal der Script:

      <html>
      <head>
      <script type="text/javascript" language="JavaScript">
      <!--

      Links=new Array();
      Links[0]=new Image();
      Links[0].src="../pics/partner_spiegel_468x60.gif";
      Links[1]=new Image();
      Links[1].src="../pics/musik_populisten_468x60.gif";
      Links[2]=new Image();
      Links[2].src="../pics/buecher_hoerbuecher_468x60.gif";

      window.document.images['banner'].src=Links[Math.floor(Math.random()*3)].src;

      //-->
      </script>
      </head>
      <body>

      <img src="unwichtiges-Bild.gif"><br>
      <img src="../pics/partner_spiegel_468x60.gif" width="468" height="60" border="0" name="banner">

      </body>
      </html>

      Und woran liegts Parker :-) ??? Am Namen "banner" wohl kaum, da auch [1] nicht funktioniert. Will übrigens nur ein Bild verändern.

      MfG
      Thomas Häber  :-)

      1. re hi :-)

        in Kombination mit Utz' Hinweis und einer Sache, die mir nach dem Abschicken noch eingefallen ist, ergibt sich dann folgendes Script:

        <html>
        <head>
        <script type="text/javascript" language="JavaScript">
        <!--

        if (document.images)
        {

        Links=new Array();
        Links[0]=new Image();
        Links[0].src="../pics/partner_spiegel_468x60.gif";
        Links[1]=new Image();
        Links[1].src="../pics/musik_populisten_468x60.gif";
        Links[2]=new Image();
        Links[2].src="../pics/buecher_hoerbuecher_468x60.gif";

        }
        else alert("Ihr Brauser ist doof!");

        function wechsel()
        {
          if (document.images)

        window.document.images['banner'].src=Links[Math.floor(Math.random()*3)].src;

        }

        //-->
        </script>
        </head>
        <body onLoad="wechsel();">

        <img src="unwichtiges-Bild.gif">

        <img src="../pics/partner_spiegel_468x60.gif" width="468" height="60" border="0" name="banner">

        </body>
        </html>

        das sollte eigentlich funzen, *hmpf* :-)

        cua

        n.d.p.

        1. Tja funktioniert immer noch nicht!!!!!!!!

          1. rehi

            dann wirst du wohl deine tippfehler selber finden muessen. *grmbl*

            cua

            n.d.p.

            1. Hab leider keinen Tippfehler im Programmcode, probier doch och mal das Zeugs aus, evt. mit anderen Bildern. Dann hast Du was für die Zuikunft, was Du deinen Enkelkindern erzählen kannst.

              MfG
              Thomas

              1. rehi

                Hab leider keinen Tippfehler im Programmcode, probier doch och mal das Zeugs aus, evt. mit anderen Bildern. Dann hast Du was für die Zuikunft, was Du deinen Enkelkindern erzählen kannst.

                nun denn, ich _habe_ das script aus dem posting mit copy & paste in meinen editor kopiert, die quote-zeichen entfernt, die bildnamen geaendert und gestartet -> siehe da, es funktioniert.

                < http://www.ndparker.de/banner.htm>

                btw: self kommt von selbermachen.

                MfG

                ?das soll ich glauben?

                cua

                n.d.p.

                1. Nach langem Tippfehlersuchen, geht der Script endlich.

                  Danke für die Unterstützung.

                  Dein Thomas :-)