• ベストアンサー

複数のバナーをリロードする度に順番を入れ替えたい

同じような質問があり、ここの↓ http://oshiete1.goo.ne.jp/kotaeru.php3?q=893308 lead1976さんの回答どおりやったら出来たんですが、リンク先は固定のままで、画像だけ順番が入れ替わってしまいました。。。 リンク先もちゃんと入れ替わる方法を教えてください。 ちなみに自分は知識がまるでないので専門用語とかさっぱりわかりません。 出来ればコピペで一部変更するだけで使えるように教えてくれると助かります。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • js_player
  • ベストアンサー率83% (10/12)
回答No.1

とりあえず作ってみました。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=Shift_JIS"> <title>バナーランダム表示</title> <script type="text/javascript"> <!-- function bannerclass(address,src){ this.src = src; this.address = address; } function getBannerAddress(){ var i = 0; var tempAddressList = new Array(); while(document.getElementById('banner' + i)){ tempAddressList[i] = new bannerclass(document.getElementById('banner' + i).parentNode.href,document.getElementById('banner' + i).src); i++; } return tempAddressList; } function setBannerAddress(tempBannerData){ var bannernum = tempBannerData.length; var i; for (i = 0; i < bannernum; i++){ var rndNum = Math.floor(Math.random() * bannernum); var tempData = tempBannerData[rndNum]; tempBannerData[rndNum] = tempBannerData[i]; tempBannerData[i] = tempData; } for (i = 0; i < bannernum; i++){ document.getElementById('banner' + i).parentNode.href = tempBannerData[i].address; document.getElementById('banner' + i).src = tempBannerData[i].src; } } function setBanner(){ var tempdata = getBannerAddress(); setBannerAddress(tempdata); } if (window.addEventListener) window.addEventListener("load", setBanner, false); else if (window.attachEvent) window.attachEvent("onload", setBanner); else window.onload = setBanner; // --> </script> </head> <body> <p> <a href="address1.html"><img src="001.png" id="banner0" alt="banner"></a> </p> <p> <a href="address2.html"><img src="002.png" id="banner1" alt="banner"></a> </p> <p> <a href="address3.html"><img src="003.png" id="banner2" alt="banner"></a> </p> </body> </html> 使い方は img タグの id に "banner0" といったように banner に続けて数字を入れるだけ。あとは JavaSscript が勝手にやってくれます。 並び替えの精度はあまりよくありませんが、とりあえず求められている機能は持たせてあります。

toyo43
質問者

お礼

出来ました!! ありがとうございます!! すごく簡単でとても役に立ちました。 また質問させていただいた時はよろしくお願いします!!

すると、全ての回答が全文表示されます。

関連するQ&A