11548 sujets

JavaScript, DOM et API Web HTML5

Salut a tous Smiley smile
Je me casse la tete sur un problème pourtant simple ...
j'appel une fonction qui fait une boucle avec les paramètres passé en variable , en l'occurance , le nombre d'éléments et un tableau d'url, jusque la on est ok ...

ces urls me serve a créer de nouvelle image via la fonction :
new Image , puis je test que la nouvelle image créer est chargé dans le cache du navigateur via : la méthode "complete".

Pour une seule image , parfait mais pour une série d'image , internet explorer me parcours la boucle For ci dessous sans se soucier des setimeout(); Smiley decu

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans nom</title>
<script type="text/javascript">
function chargementImg(nbimage,taburl){
	//On initialise la boucle pour créer de nouvelle image
	for(var i = 0; i < nbimage; ++i ){
		im=new Image();
		im.src=taburl[i];
		actif=setTimeout('controleChargement('+i+')',300);
		 alert("url : "+taburl[i]);
	}
	
}
function controleChargement(idImg){ 
clearTimeout(actif);
 alert("image n° : "+idImg);	
if(im.complete){ // image complètement chargée
//alors on fait l'action désiré ( on l'affiche ... )
  monIdfinal = "img"+(idImg+1);	
  document.getElementById(monIdfinal).src = im.src;
}
//sinon on appel la fonction elle même
else {
	document.getElementById("divChargement").innerHTML = "chargement en cours : image "+idImg;
	actif=setTimeout('controleChargement('+idImg+')',1000)
	}
} 
</script>
</head>

<body>
<div id="divChargement" style="border:5px solid #333333; width:100px;">
	yop [smile]
</div>
<img src="" alt="image n°1" id="img1" />
<img src="" alt="image n°2" id="img2" />
<script>
var montabimg = new Array ("http://ccat.sas.upenn.edu/~humm/Topics/AdamNeve/a_n_e01.jpg","http://www.guidehorse.org/images/CuddlesJanetFranklinton52.jpg");
</script>
<input type="button" value="test chargement image" onclick="chargementImg('2',montabimg)" />
</body>
</html>



si quelqu'un peut m'éclaircir ??

bonne soirée[/i][/i]
up, après documentation il semblerais qu'il sagisse d'un problème de variable, j'utilise la même variable pour charger les images...
Est il possible de générer des noms de variable de manière dynamique ??
Salut,
dans ta fonction chargementImg, tu dois avoir :
im[#red][i ] [/#]= new Image()

ainsi de suite ...
et dans l'autre:
if(im[#red][idImg ].[/#]complete){ 

ext ...
pour éviter de boucler sur une seule image.
Modifié par chmel (07 Jun 2006 - 13:21)
merci , je vais tester ça rapidement Smiley smile
pour la suite du message que tu as modifié Smiley cligne , les images seront chargé via ajax donc la méthode doit obtenir en paramètre le nombres d'image car on ne le connait pas a l'avance ...

j'avance petit a petit, pas évident a réaliser , j'espère que le résultat sera a la hauteur Smiley smile

merci encore chmel