jv-script Problem



  • <script language="JavaScript"> 
    
    <!-- Script begin 
    function random_img() { 
        images = new Array( 
            new Array("bilder/3dkult.jpg",400,100,"name1"), 
            new Array("bilder/defbild.gif",400,100,"name2") 
        ); 
    
        for (i=0;i<images.length;i++) { 
            a = Math.round(Math.random()*images.length); 
            if ((a >= 0) && (a < images.length)) { 
                    bild = images[a]; 
                    URL = bild[0]; 
                    breite = bild[1]; 
                    hoehe = bild[2]; 
                    bildname = bild[3]; 
                    document.write("<img src=\""+URL+"\" border=\"0\" alt=\""+bildname+"\" width=\""+breite+"\"height=\""+hoehe+"\" align=\"center\" \/>"); 
                    break; 
            } 
        } 
    } 
    // Script Ende -->
    

    Diesen Code habe ich aus diesem Forum. Leider funktioniert er nicht richtig. Es soll zufällig Bilder anzeigen. Macht es auch. Nur manchmal zeigt er nichts an. seht ihr wo der Fehler liegen könnte. Ich kenne mich mit der Programmierung nicht so gut aus 🙄



  • a = Math.round(Math.random()*images.length);
    

    Das liefert dir eine Zahl zwischen 0 und (einschließlich) images.length
    a darf aber eigentlich nur einen Wert zwischen 0 und images.length-1 annehmen (dazu hast du ja auch deine if-Abfrage)
    wird a jetzt aber images.length, wird eben nichts ausgegeben 😉

    Lösung: einfach statt Math.round Math.floor verwenden (anders stimmt die Wahrscheinlichkeitsverteilung eh nicht) 🙂


Anmelden zum Antworten