找回密码
 注册
搜索
免费空间 免费域名 免费AI 老牌主机商首月仅1美分!27美元/年!Spaceship优惠码 Namecheap优惠码阿里云2核2G3M新老续费同享99元/年!
查看: 295|回复: 3

[建站交流] 原创,广告延迟加载代码、广告最后加载代码(非innerHTML)

[复制链接]
发表于 2012-4-20 07:51:54 | 显示全部楼层 |阅读模式
本帖最后由 chenghua 于 2012-4-20 07:53 编辑

以前广告延迟加载,一般是利用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>
复制代码
发表于 2012-4-20 13:09:22 | 显示全部楼层
kiss you~~
发表于 2012-4-21 12:09:39 | 显示全部楼层
坦克有。
发表于 2012-4-21 13:03:12 | 显示全部楼层
good
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|免费吧论坛

GMT+8, 2024-11-27 01:25 , Processed in 0.020307 second(s), 4 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表