看到网上有很多让广告联盟延迟加载的方法,本人没用过,在此不做评论,不过按照其方法思路做个jquery版本。
1、设置广告联盟代码显示位置:
<div id='广告联盟显示位置'>加载中.....</div>
2、在页面底部即</body>之前放置联盟代码
<div id='广告联盟代码位置'>这里是广告联盟的代码</div>
3、插入以下js代码:
<script language="javascript" type="text/javascript">
$(document).ready(function () {
$("#广告联盟显示位置").html($("#广告联盟代码位置").html());
});
</script>
这种情况在谷歌浏览器可行,火狐加载完页面后页面变成空白,ie广告代码加载失败!(注意这种情况是Google广告联盟,百度好像不会出现)
这种情况是因为谷歌会判断你是否移动了广告位置,如果移动就会显示空白。
现在改造代码如下:
<script language="javascript" type="text/javascript">
$(document).ready(function () {
$("#广告联盟代码位置").find("iframe").appendTo("#广告联盟显示位置");
$("#广告联盟代码位置").remove();
});
</script>
好了,现在火狐、谷歌都能正确显示了,但是ie中又出现问题了,调试发现ie中,代码执行正常,内容都在,但是就是不显示。
在测试的时候发现只有再次"触发"(偶也不知道具体原因,暂且这样叫吧!)“广告联盟显示位置”这个div时,才能把广告联盟显示出来。
所以现在改造上述代码为:
<script language="javascript" type="text/javascript">
$(document).ready(function () {
$("#广告联盟代码位置").find("iframe").appendTo("#广告联盟显示位置");
$("#广告联盟显示位置").css("font-size", 12);//当然这个也可以换成其他的,主要是再次触发这个div
$("#广告联盟代码位置").remove();
});
</script>
现在ie7、8 ,火狐、谷歌都能正确显示了
如果你要特殊要求,比如要求页面内容全部都要加载完才执行上述代码,可以把$(document).ready换成$(window).load
看看偶的网站:天下第一吃