JS:画像を繰り返しランダム読込すると途中で止まる
現状は、ページの読み込み時にランダムで2枚の画像を読み込んで、loadのたびに違う画像が表示されるようにしています。
それをリロードせずに繰り返し画像を切り変えるように変更したく下記のように「setTimeout("getImg()",1000); 」を追加したところ、画像の切り替え8回目の切り替えあたりで止まってしまいます。(その際、2枚の画像が同じ画像になります。毎回同じ画像でなるわけではない)
変数か何かをクリアすればいいような気はするのですが、初心者レベルのためわかりませんでした。
原因わかる方いましたらご教示頂ければ幸いです。
javascript:img1111.js
------------------------
function getImg(str){
//ランダム
function randNum(){
var randNum = Math.floor(Math.random()*img.length);
return randNum;
}
//表示処理
if(str=="wide"){
var n = randNum();
setIMG = 'url(images/'+img[n][1]+')';
document.getElementById('inner_recomend').style.backgroundImage = setIMG;
if(img[n][0]){
setURL = '<a href="'+img[n][0]+'" target="_blank"></a>';
}else{
setURL = '';
}
document.getElementById('right_contents_rec').innerHTML = setURL;
}else{
//画像とURL取得
function imgSet(id,n){
var setIMG = 'url(images/'+img[n][1]+')';
document.getElementById(id).style.backgroundImage = setIMG;
if(img[n][0]){
setURL = '<a href="'+img[n][0]+'" target="_blank"></a>';
}else{
setURL = '';
}
document.getElementById(id).innerHTML = setURL;
}
var n = randNum();
imgSet('right_contents_rec1',n);
img.splice(n,1);
var nn = randNum();
imgSet('right_contents_rec2',nn);
}
//次のタイマー呼びだし
setTimeout("getImg()",1000);
}
-------------
htmlは下記
-------------
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<div id="swap">
<div id="select01">
<div id="inner_recomend">
<div id="right_contents_rec1"></div>
<div id="right_contents_rec2"></div>
</div>
</div>
</div>
</body>
<script type="text/javascript" src="img1111.js"></script>
<script type="text/javascript">
var img = new Array();
//画像リストの設定 ('URL','画像ファイル名')
img[0] = Array('http://www.000.co.jp/','15961.jpg');
img[1] = Array('http://www.000.co.jp/','15962.jpg');
img[2] = Array('http://www.000.co.jp/','15963.jpg');
img[3] = Array('http://www.000.co.jp/','15964.jpg');
img[4] = Array('http://www.000.co.jp/','15965.jpg');
img[5] = Array('http://www.000.co.jp/','15966.jpg');
img[6] = Array('http://www.000.co.jp/','15967.jpg');
img[7] = Array('http://www.000.co.jp/','15968.jpg');
img[8] = Array('http://www.000.co.jp/','15969.jpg');
//
getImg();
</script>
</html>
-------------
よろしくお願いいたします。
お礼
やはり2つ表示する場合は2種類書かないとダメなんですねT-T IEでしか試していませんでした・・ document.getElementById('banner1').innerHTML 上記方法に書き直します。 ありがとうございました。