プロが教えるわが家の防犯対策術!

昨日、JavaScriptでランダム広告について質問したものです。
http://oshiete.goo.ne.jp/qa/8960303.html

昨日、教えてもらった方法では、テキスト表示はいいのですが、アフィリリンクなどタグを入れると何も映らなくなります。

この場合はどうすればいいのか教えてください。

ちなみに昨日教えてもらったものがこちです。

// 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>

A 回答 (2件)

document.writeで処理しているので、タグでもOKなはずですけれど…?


試してみたところ、問題なく表示されるようです。
ちゃんと動作するスクリプトを提示なさっても、修正のしようがありませんが・・・

以下、想像になってしまいますが、
スクリプトのURLが間違っているということはありませんか?
または、出力した結果、HTML構文がおかしなことになっていたりしませんか?

あるいは、ひょっとして、ダブルクォーテーションの中にダブルクォーテーションを入れたりしてませんか??
もしかすると、エスケープが必要なケースだったりするのかもしれませんね。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
ダブルクォーテーションの中にダブルクォーテーションが入っていました。
"を\"にしたら上手くいきました。

お礼日時:2015/04/13 12:00

たぶん


* 引用符の重複による文法エラー
* 特定キーワードの混入による誤作動
が原因ではないかと

例)
誤: message:"<script src="テレポートのお供に梅仁丹216円.js"></script>"
正: message:"<scr" + "ipt src='テレポートのお供に梅仁丹216円.js'></scr" + "ipt>"
    • good
    • 0
この回答へのお礼

回答ありがとうございいました。

お礼日時:2015/04/13 12:01

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