0

JavaScript で独自の絵巻物を作成しましたが、3 ~ 4 枚の写真を変更した後、スクリプトがページをクラッシュさせました。何故かはわからない!誰かが私を助けることができますか?写真は 2 つの異なるファイルからランダムに取得され、配列に保存されます

これが私のコードです:

 <div class="corpshaut"> 
<a href="" id="lien_banniere0" border="0" class="image-bandeau"><img src="" id="banniere0" height="150" border="0" width="150" /></a> 
<a href="" id="lien_banniere1" border="0" class="image-bandeau"><img src="" id="banniere1" height="150" border="0" width="150"/></a> 
<a href="" id="lien_banniere2" border="0" class="image-bandeau"><img src="" id="banniere2" height="150" border="0" width="150"/></a> 
<a href="" id="lien_banniere3" border="0" class="image-bandeau"><img src="" id="banniere3" height="150" border="0" width="150"/></a> 
<a href="" id="lien_banniere4" border="0" class="image-bandeau"><img src="" id="banniere4" height="150" border="0" width="150"/></a> 
<script> 
$(document).ready(function(){ 
boucle(); 
}); 
function boucle(){ 
/*Variablde de parametre*/ 
var nbimagetotal = 5; 
var nbimagesuivie = 1; 
var nbimagedossier = 11; 
var repertoire = 'image3/('; 
var lien = 'www.lien.fr'; 
/*-------------------------*/ 
/*Variablde*/ 
var stock = new Array(); 
var index; 
var occu; 
var nbimage = Math.floor((Math.random()*nbimagetotal)+1); 
var aleatoire; 
/*-------------------------*/ 
while (nbimagesuivie <= nbimagetotal){ 
occu=0; 
for (i=0; i<nbimage; i++){ 
aleatoire = repertoire + Math.floor((Math.random()*nbimagedossier)+1) + ').gif'; 
/*Boucle FOR permettant de verifier si l'image est déja dans le tableau*/ 
for (j =0; j<i;j++){ 
index= stock[j].indexOf(aleatoire); 
if (index != -1) { 
occu=1; 
} 
} 
if (occu==0) { 
stock[i] = new Array(); 
stock[i][0]= aleatoire; 
stock[i][1]=lien; 
nbimagesuivie = nbimagesuivie +1; 
} 
else{ 
--i; 
} 
} 
if(nbimage < 5){ 
occu=0; 
var repertoire2 = 'image2/'; 
var nbimagedossier2 = 11; 
var nbimage2 = nbimagetotal - nbimage; 
var lien2 = 'www.lien2.fr' ; 
for (i=nbimage; i<nbimagetotal; i++){ 
aleatoire = repertoire2 + Math.floor((Math.random()*nbimagedossier)+1) + '.jpg'; 
/*Boucle FOR permettant de verifier si l'image est déja dans le tableau*/ 
for (j =0; j<i;j++){ 
index= stock[j].indexOf(aleatoire); 
if (index != -1) { 
occu=1; 
} 
} 
if (occu==0) { 
stock[i] = new Array(); 
stock[i][0]= aleatoire; 
stock[i][1]=lien2; 
nbimagesuivie = nbimagesuivie +1; 
} 
else{ 
--i; 
} 
}   
} 
} 
for (i=0;i<nbimagetotal;i++){ 
$('#lien_banniere'+i).attr('href', stock[i][1]); 
$('#banniere'+i).attr('src',stock[i][0] ); 
} 
setTimeout(function(){boucle()}, 5000); 
} 
</script>

あなたの助けをthx

4

1 に答える 1

0

occu==1 の場合に --i を実行している場合、for を使用すると i++ を実行し、ループは中断せずにこの方法で続行されるため、無限ループが発生します。

于 2013-07-19T09:00:48.267 に答える