- 締切済み
1万個からランダムリンクさせるには?
1万個からランダムリンクさせたいのですが、 jmp〔0〕からjmp〔10000〕まで作ってしまうと 異常にソースが長くなり、読み込みが長くなってしまいました。 軽量化して読み込みを早したいのですが、いい方法はないでしょうか? 使用したソースです プログラム初心者ですので具体的に書いていただけるとうれしいです。 <HTML> <HEAD> <TITLE></TITLE> </HEAD> <BODY bgcolor="#ffffff"> <SCRIPT language="JavaScript"> <!-- // ランダムに画像を表示する jmp = new Array(); img = new Array(); // ジャンプ先のアドレス(数字は画像と対応) jmp[0] = "http://www.yahoo.co.jp/"; jmp[1] = "http://bb.yahoo.co.jp/"; jmp[2] = "http://www.yahoo.co.jp/"; jmp[3] = "http://auctions.yahoo.co.jp/"; jmp[4] = "http://aeu.jp/cs/"; // 画像のアドレス(数字はジャンプ先のアドレスと対応) img[0] = "img/img0.jpg"; img[1] = "img/img1.jpg"; img[2] = "img/img2.jpg"; img[3] = "img/img3.jpg"; img[4] = "img/img4.jpg"; n = Math.floor(Math.random()*jmp.length); document.write("<a href='"+jmp[n]+"'>"); document.write("<img src='"+img[n]+"' border='0'>"); document.write("</a>"); //--> </SCRIPT> </BODY> </HTML>
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- JaneDue
- ベストアンサー率75% (263/350)
>やってみます。 とのことなので一応補足 document.write("<script ~ </script>"); は閉じタグを分割しないと誤作動するので、".js'></"+"script>");のようにしてください。 また、#Ano2通りだとグローバル変数が散らかりそうなので、ほんとにやるなら閉じ込めた方がよいでしょう。 <script type="text/javascript"> var myLink={ n:Math.floor( Math.random() * 10000 ), img:"/img/" + this.n + "/jpg", url:null, set:function(){ document.write("<script type='text/javascript' src='/パス/" + this.n + ".js'></"+"script>"); } }; myLink.set(); </script> <script type="text/javascript"> document.write("<a href='" +myLink.url+ "'><img src='/img/" +myLink.img+ "'></a>"); </script> 読み込む xxxx.jsの方は myLink.url = "http://www.example.com/";
- JaneDue
- ベストアンサー率75% (263/350)
1行 var url = "http://www.example.com/"; とリンク先だけ定義したJavasScriptファイルを 0.jsから 9999.jsまで1万個用意する。 あとはお気づきかと思いますが、 <head>内あたりで var n = Math.floor( Math.random() * 10000 ); document.write("<script language='JavaScript' src='/パス/"+n+ ".js'></script>"); としておき、表示したいところで document.write(~); とすれば、メモリも消費せず可能ではありますが…。
10000件が全部バラバラなら無理。
お礼
わかりました、別の方法を考えてみます。 ありがとうございました。
お礼
ありがとうございますやってみます。