Nico: Random Bilderauswahl + Link

Hallo,

folgendes Script erlaubt das zufaellige Aufrufen von Bildern:

Code
-----------------------------------------
var pics = new Array("bild2.jpg", "bild3.jpg", "bild4.jpg");

function GetPic() {
var idx;
var picName="";
while(picName=="") {
idx = Math.floor(Math.random()*pics.length);
picName=pics[idx];
}
pics[idx]="";
return picName;
}

function WritePic() {
document.writeln("<img src='" + GetPic() + "'");
}
---------------------------------------

Das Script funzt wunderbar. Nun moechte ich es aber abaendern, um folgendes zu erreichen:
Die durch das Script zufaellig aufgerufenen Bilder sollen anklickbar sein, um die jeweilige Originalversion der Bilder in einem neuen Window dazustellen.

Kann mir dabei jemand helfen?

Danke Euch im voraus!!

Gruesse (und noch alles Gute im Neuen Jahr)
Nico

  1. var z=51;
    Bild = new Array(z);
    Bild[1] = '<A HREF="bild-1.jpg" target="_blank"><IMG SRC="bild-1-klein.jpg" ALT="Bild 1" BORDER=0></A>';
    Bild[2] = '<A HREF="bild-2.jpg" target="_blank"><IMG SRC="bild-2-klein.jpg" ALT="Bild 2" BORDER=0></A>';
    Bild[3] = '<A HREF="bild-3.jpg" target="_blank"><IMG SRC="bild-3-klein.jpg" ALT="Bild 3" BORDER=0></A>';

    var jetzt=new Date();
    var z=(jetzt.getSeconds())%51;
    document.write(Bild[z]);

    1. Hallo Mark,
      danke fuer Deinen Loesungsvorschlag. Aber, wenn mich nicht alles taeuscht, ist Dein Script ein eigenstaendiger Code und keine erweiterte Fassung von dem von mir verwandten Code.

      Gehe ich richtig in dieser Annahme?
      Gruesse,
      Nico

      var z=51;
      Bild = new Array(z);
      Bild[1] = '<A HREF="bild-1.jpg" target="_blank"><IMG SRC="bild-1-klein.jpg" ALT="Bild 1" BORDER=0></A>';
      Bild[2] = '<A HREF="bild-2.jpg" target="_blank"><IMG SRC="bild-2-klein.jpg" ALT="Bild 2" BORDER=0></A>';
      Bild[3] = '<A HREF="bild-3.jpg" target="_blank"><IMG SRC="bild-3-klein.jpg" ALT="Bild 3" BORDER=0></A>';

      var jetzt=new Date();
      var z=(jetzt.getSeconds())%51;
      document.write(Bild[z]);

  2. Angenommen Du willst ein pop up oeffnen und darin eine grosse Version Deines Bildchen haben willst (naming convention jetzt der Einfachheit halber einfach ein "g" vor dem Namen des kleinen Bildchens), aendere die function WritePic folgendermassen ab, und schreibe zusaetzlich noch die PopUp function dazu. Der Code ist nicht getestet, aber in die Richtung sollte es gehen.

    ---------------------------
    function WritePic() {
     document.writeln("<a href='javascript:PopUp(" + GetPic() + ");'><img src='" + GetPic() + "'></a>");
    }

    function PopUp(bild) {
    gBild = "g" + bild;
     win2 = window.open( "","win2","width=300,height=400");
    win2.document.write("<html><head></head><body><img src='" + gBild + "'></body></html>");
     win2.focus();
    }
    ---------------------------

    Gruss, Mel

    1. Oh, zu schnell auf "absenden" gedrueckt, ein Fehler ist drin.
      Mach die Function WritePic lieber so:

      function WritePic() {
        picked = return GetPic();
        document.writeln("<a href='javascript:PopUp(" + picked  + ");'><img src='" + picked  + "'></a>");
       }


      function WritePic() {
      document.writeln("<a href='javascript:PopUp(" + GetPic() + ");'><img src='" + GetPic() + "'></a>");
      }

      function PopUp(bild) {
      gBild = "g" + bild;
      win2 = window.open( "","win2","width=300,height=400");
      win2.document.write("<html><head></head><body><img src='" + gBild + "'></body></html>");
      win2.focus();
      }

      Gruss, Mel

      1. Hi Mel,

        danke fuer Deinen Loesungsvorschlag.

        Ich habe ihn getestet mit dem Ergebnis, dass Deine erste Version, so langsam laeuft, dass Explorer den Geist aufgibt. Weiss der Teufel, warum? In der Zweiten Version steckt vermutlich ein Fehler, denn da geht ohne Fehlermeldung ueberhaupt nichts.

        Ich bin mittlerweile zu folgendem Ergebnis gekommen, das allerdings den Nachteil hat, dass es keine PopUp - Funktion enthaelt. Die muesste da noch eingebaut werden. Weisst Du da Rat?

        Code:
        ------------------------------
        <html>
        <head>
        <title></title>
        </head>
        <body>
        <script>
        var pics = new Array("bild2.jpg", "bild3.jpg", "bild4.jpg");
        function GetPic() {
        var idx;
        var picName="";
        while(picName=="") {
        idx = Math.floor(Math.random()*pics.length);
        picName=pics[idx];
        }
        pics[idx]="";
        return picName;
        }
        function WritePic() {
        picName=GetPic()
        document.writeln("<a href='gross/"+picName+"'><img src='"+picName+"'></a>");
        }
        </script>
        <p><script> WritePic();</script><br>
        <script> WritePic();</script> </p>
        </body>
        </html>
        ----------------------------------------------------------

        Dabei gilt es zu beachten, dass die grossen Bilder den gleichen Namen tragen wie die kleinen und sich im Unterverzeichnis /gross befinden muessen.

        So, nun fehlt wie gesagt nur noch die Popup-Funktion....

        Gruesse
        Nico

  3. Hallo,

    Problem geloest, uffff!

    Gruss,
    Nico