有没有办法在document.ready上加载doubleclick.net广告代码?

时间:2015-01-08 15:50:03

标签: javascript jquery html google-dfp double-click-advertising

我尝试在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,当动态显示第三方网络时,它在宽度/高度上不再灵活。

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:1)

检查您的JavaScript错误。很可能这是异步下载脚本的问题,事实上:我很有信心。这是来自doubleclick的脚本(从您提供的链接下载:

document.write('\x3cdiv...

document.write不起作用,因为document.ready已经关闭了文档DOM。您特别需要将代码添加到DOM中的元素,而无法使用document.write完成。为了完成这项工作,您必须联系doubleclick并让它们将每个document.write更改为将代码附加到页面中的元素的内容,或者将代码(包括脚本)异步加载到iframe中。