Problem mit Array
hubschraubaer
- javascript
0 Thorsten F.0 Marian
Hi!
Ich habe ein Script geschrieben, welches zufällig eines von 10 Bildern ausgeben soll. Aber aus irgendeinem Grund geht das nicht. Und diesen Grund finde ich nicht. Könnt ihr mir vielleicht helfen und sagen, was ich anders machen muss?
---------------------------------------------------------------------
<html>
<head>
<title></title>
<script type="text/javascript">
var a = Math.random() + "";
var zahl = a.charAt(5);
var Bild= new Array();
Bild[0]= new Image();
Bild[0].src= "../../../galerie/dolomiten/bilder/5.jpg";
Bild[1]= new Image();
Bild[1].src= "../../../galerie/dolomiten/bilder/2.jpg";
Bild[2]= new Image();
Bild[2].src= "../../../galerie/dolomiten/bilder/8.jpg";
Bild[3]= new Image();
Bild[3].src= "../../../galerie/dolomiten/bilder/17.jpg";
Bild[4]= new Image();
Bild[4].src= "../../../galerie/dolomiten/bilder/26.jpg";
Bild[5]= new Image();
Bild[5].src= "../../../galerie/dolomiten/bilder/29.jpg";
Bild[6]= new Image();
Bild[6].src= "../../../galerie/dolomiten/bilder/3.jpg";
Bild[7]= new Image();
Bild[7].src= "../../../galerie/dolomiten/bilder/14.jpg";
Bild[8]= new Image();
Bild[8].src= "../../../galerie/dolomiten/bilder/19.jpg";
Bild[9]= new Image();
Bild[9].src= "../../../galerie/dolomiten/bilder/15.jpg";
document.getElementById("bild").src= Bild[zahl].src;
</script>
</head>
<body>
<img src="../../../galerie/dolomiten/bilder/15.jpg" width="600" height="450" alt="" id="bild">
</body>
</html>
---------------------------------------------------------------------
Vielen Dank!
ciao, hubschraubaer
Hi,
gibt der Browser dir keinerlei Fehlermeldung aus?
Versuchs mal so: Du packst den gesamten JS-Code in eine Fkt. und diese rufst du dann im Body auf:
<body onload="makeImage()">
Was passiert dann?
Denn meines Erachtens läuft der JS-Code durch, obwohl das Bild noch gar nicht da ist, oder?
Grüße,
Thorsten F.
Hallo hubschraubaer,
Ueberleg mal bzw. schau nach, was Math.random() zurueckgibt.
Ausserdem solltest du nicht alle Bilder definieren, obwohl du nur eins davon brauchst. Du koenntest zum Beispiel ein Array machen, in dem dir URLs zu den Bildern (als Strings) gespeichert sind, und dann document.getElementById("bild").src=arraymitdenurls[zahl]
machen.
Viele Grüße aus Freiburg,
Marian
Hallo Marian,
Ueberleg mal bzw. schau nach, was Math.random() zurueckgibt.
Eine Zahl zwischen Null und Eins und durch das Anhängen der Anführungszeichen wird daraus direkt ein String, auf den man wiederum charAt(<int>) anwenden kann - ob das sinnvoll ist, sei mal dahingestellt. Ein Fehler ist es jedoch nicht, solange der entstehende String mindestens 5 Zeichen hat. Die Typumwandlung scheint JavaScript auch problemlos vor der Anwendung auf das Array durchzuführen - ggf. könnte man das hier durch das Number-Objekt, parseInt oder durch eine Subtraktion von Null absichern o.ä.
Einzig das Bild, dessen Adresse getauscht werden soll, ist zum Zeitpunkt der Scriptausführung noch nicht vorhanden.
Mit freundlichem Gruß
Micha