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:我更喜欢使用“同步”标签而不是“异步”标签,因为“异步”正在创建一个 iFrame,当动态显示第 3 方网络时,它的宽度/高度不再灵活。

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 错误。事实上,这很可能是异步下载脚本的问题:我敢肯定。这是来自双击的脚本(从您提供的链接下载:

document.write('\x3cdiv...

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

于 2015-01-08T15:56:54.380 回答