[javascript] Refresh immagine random

valentino861
Ho creato uno script che mi prende delle immagini random da una cartella ma ora vorrei che si aggiornassero ogni tot secondi e non ogni volta che si aggiorna la pagina. Come si può fare?

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

NumberOfImagesToRotate = 3;

FirstPart = '<img src="random/immagine';
LastPart = '.jpg" width="300" style="float:left;margin: 10px">';

function random(){
var r = Math.ceil(Math.random() * NumberOfImagesToRotate);
document.write(FirstPart + r + LastPart);
}
</script>


Ho visto il comando setInterval e ho provato a metterlo cosi
<HTML>
<HEAD>
<script type="text/javascript" language="JavaScript">

NumberOfImagesToRotate = 3;

FirstPart = '<img src="random/immagine';
LastPart = '.jpg" width="300" style="float:left;margin: 10px">';

function random(){
var r = Math.ceil(Math.random() * NumberOfImagesToRotate);
document.write(FirstPart + r + LastPart);
}
</script>
</HEAD>
<body onLoad="setInterval('random()',2000)" >

<div><script type="text/javascript" language="JavaScript">random();</script>
</body>
</html>


Ma mi carica tutta la pagina e in ogni caso rimane tipo impallato nel caricamento

Risposte
valentino861
ho fatto cosi e sembra funzionare
<script language="javascript">
var refreshrate=5;               //numero di secondi tra ogni refresh
var image;
NumberOfImagesToRotate = 9;

FirstPart ="images/stories/Kart/random/immagine";
LastPart = ".jpg";

function refresh(){
var r = Math.ceil(Math.random() * NumberOfImagesToRotate);
image=FirstPart + r + LastPart;
document.images["pic"].src=image+"?"+new Date();
setTimeout('refresh()', refreshrate*1000);
}

document.write('<img src="'+image+'" height="300" name="pic" style="float:left;margin: 10px>');

if(document.images)window.onload=refresh;
</script> 


Ma non capisco perchè se faccio cosi nel body:

<body>
<center><img src="http://img.ecplaza.com/my/Mobilelist2009/sitebuilder/images/dgdfg4.jpg" width="400"></center>
<div><script type="text/javascript" language="JavaScript">refresh();</script> 
<p>Cfsdfsfsgsgdfhghbbc
</div>
</body>


la prima immagine non si vede.Cioè tutto quello che metto prima dello script non si vede

Rggb1
Direi perché refresh() viene eseguita subito, quindi sostituisce il SRC subtag prima che venga visualizzato quello inserito nel tag IMG

valentino861
quindi come potrei fare?

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.