1

doubleclick.netに広告タグを読み込もうとしましdocument.readyたが、広告が表示されません。

HTML

<script language="JavaScript" type="text/javascript" data-ad-src="http://ad.ch.doubleclick.net/adj/swisswebcams/;lng=de;kw=home;tile=3;dcopt=ist;sz=160x600;ord=1874680027?"></script>

JavaScript (jQuery が必要)

$(document).ready(function(){
  $('script[data-ad-src]').each(function(){
    this.src = $(this).attr('data-ad-src');
    $(this).removeAttr('data-ad-src');
  });
});

生成されたソース コードではスクリプトは正しく表示されますが、広告が読み込まれなくなります。スクリプトには document.ready イベントが必要ですか? document.ready の直前にこのスクリプトをロードする方法、または document.ready を再度トリガーする方法はありますか?

PS: 「async」タグよりも「sync」タグを使用することを好みます。これは、「async」が作成する iFrame が、サードパーティ ネットワークを動的に表示するときに幅/高さが柔軟でなくなるためです。

4

2 に答える 2

1

これを試して

<script>
var wr = document.write, dchtml=[];
document.write=function(str) {
 // you may want to catch '<script' and add the src to the head when needed
 dchtml.push(str);
}
</script>
<script language="JavaScript" type="text/javascript" data-ad-src="http://ad.ch.doubleclick.net/adj/swisswebcams/;lng=de;kw=home;tile=3;dcopt=ist;sz=160x600;ord=1874680027?"></script>
<script>
$(function() { // assuming jQuery is loaded before this block
  $("#whereIWantMyAds").html(dchtml.join("\n"));
});
<script>
于 2015-01-08T15:55:49.773 に答える
1

JavaScript エラーを確認します。おそらく、これはスクリプトの非同期ダウンロードの問題です。実際、そうです。これは doubleclick のスクリプトにあります (指定したリンクからダウンロードします:

document.write('\x3cdiv...

document.ready はすでにドキュメント DOM を閉じているため、document.write は機能しません。具体的には、DOM 内の要素にコードを追加する必要がありますが、これは document.write では実行できません。これを機能させるには、doubleclick に連絡して、すべての document.write をページ内の要素にコードを添付するものに変更させるか、コード (スクリプトを含む) を iframe に非同期的にロードする必要があります。

于 2015-01-08T15:56:54.380 に答える