プロが教える店舗&オフィスのセキュリティ対策術

JavaScriptでランダム広告、「1つのページに複数設置」する場合はどうすればいいのですか?

http://detail.chiebukuro.yahoo.co.jp/qa/question …

ここのページを参考にしてアップロードしたのですが、同じ広告が表示される場合があります。

それを回避させる為にはどうすればいいのでしょうか?

A 回答 (1件)

ご提示のサンプルでは出来ません



やるとしたらこんな感じでしょうか

// randomadv.js
function createAdvertisementObject(_) {
var neo = [], a = Array.prototype.slice.apply(arguments);
function sum(a){ var i,t; for (t=i=0; i<a.length; i++) t += a[i].rate; return t }
function find(a,n){ var i; for (i=0; i<a.length; i++) { n -= a[i].rate; if (n<0) return i } return 0}
while (a.length > 0) neo.push((a.splice(find(a, Math.random() * sum(a)), 1))[0].message);
return { data:neo, length:neo.length, index:0, getNext:function(){return this.data[this.index++ % this.length]} };
}
var advertisementObject = createAdvertisementObject(
{ rate:80, message:"正太新聞 読もう"},
{ rate:15, message:"正太ラジオ 聴こう"},
{ rate:4, message:"週刊のび太 特別付録付きで定価100円"},
{ rate:1, message:"ころばし屋 血も涙もない転ばせぶりです 依頼料10円"}
);

// ページ
<script src=randomadv.js></script>
<body>
...
<script>document.write(advertisementObject.getNext());</script>
...
<script>document.write(advertisementObject.getNext());</script>
...
    • good
    • 0
この回答へのお礼

ありがとうございます。

思っていたことができました

お礼日時:2015/04/10 21:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!