广告延迟加载代码、广告最后加载代码(非innerHTML)

以前广告延迟加载,一般是利用innerHTML的方式,将最后加载的广告代码替换到广告显示位置。

但是这样会照成广告2次显示。从而降低了广告单价(对 google adsense 的影响最明显)。而且一多了,容易引起JS脚本出错。


这几天我也一直在纠结这个问题,今天抽空研究了下,利用zIndex的方式。将最后加载的广告代码移动到需要显示的广告位置,这样就不会照成多次展示的问题了。

延迟加载广告效果演示:http://www.51240.com/shenfenzheng/

现将代码共享出来:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>广告延迟加载</title>
  6. <script type="text/javascript">
  7. //延迟加载广告效果演示:http://www.51240.com/shenfenzheng/
  8. function gg_load_content(gg_load_show_id, gg_load_content_id) {
  9. //设置“广告内容元素”的显示样式
  10. document.getElementById(gg_load_content_id).style.display = "block";
  11. document.getElementById(gg_load_content_id).style.position = "absolute";
  12. document.getElementById(gg_load_content_id).style.zIndex = "5";
  13. //设置“广告内容元素”的大小
  14. document.getElementById(gg_load_content_id).style.width = document.getElementById(gg_load_show_id).clientWidth+"px";
  15. document.getElementById(gg_load_content_id).style.height = document.getElementById(gg_load_show_id).clientHeight+"px";
  16. //将“广告内容元素”移动到“广告显示位置”上,并且遮罩“广告显示位置”(500为半秒校对一次广告位置)
  17. gg_load_monitor(gg_load_show_id, gg_load_content_id, 500);
  18. }

  19. function gg_load_monitor(gg_load_show_id, gg_load_content_id, monitor_time) {
  20. if (document.getElementById(gg_load_show_id).getBoundingClientRect().top != document.getElementById(gg_load_content_id).getBoundingClientRect().top || document.getElementById(gg_load_show_id).getBoundingClientRect().left != document.getElementById(gg_load_content_id).getBoundingClientRect().left)
  21. {
  22. //将“广告内容元素”移动到“广告显示位置”上,并且遮罩“广告显示位置”
  23. document.getElementById(gg_load_content_id).style.left = (document.body.scrollLeft+document.documentElement.scrollLeft+document.getElementById(gg_load_show_id).getBoundingClientRect().left)+"px";
  24. document.getElementById(gg_load_content_id).style.top = (document.body.scrollTop+document.documentElement.scrollTop+document.getElementById(gg_load_show_id).getBoundingClientRect().top)+"px";
  25. }
  26. //自动循环校准广告显示位置
  27. setTimeout(function(){gg_load_monitor(gg_load_show_id, gg_load_content_id, monitor_time);}, monitor_time);
  28. }
  29. </script>
  30. </head>

  31. <body>



  32. <br />测试<br />测试<br />测试<br />测试<br />测试<br />


  33. <!-- 广告应该显示的位置 -->
  34. <div id="ggwz_468x60" style="width:468px;height:60px;"></div>


  35. 测试<br />测试<br />测试<br />测试<br />测试<br />测试<br />






  36. <!-- 广告延迟加载代码 开始 -->
  37. <div id="ggwz_468x60_content" style="display:none;">
  38. <!-- 请讲广告代码放在这个位置 -->
  39. <img src="http://img01.taobaocdn.com/tps/i1/T1iMy_XdFqXXXXXXXX-490-170.png" width="468" height="60" />
  40. </div>

  41. <script type="text/javascript">
  42. //调用说明:gg_load_content("广告显示位置id", "广告内容元素id");
  43. gg_load_content("ggwz_468x60", "ggwz_468x60_content");
  44. </script>
  45. <!-- 广告延迟加载代码 结束 -->




  46. </body>
  47. </html>
本博客所有文章如无特别注明均为原创。作者:yhaoo复制或转载请以超链接形式注明转自 yhaoo的菠萝格
原文地址《广告延迟加载代码、广告最后加载代码(非innerHTML)
分享到:更多

相关推荐

发表评论

路人甲 表情
Ctrl+Enter快速提交

网友评论(0)