CSDN博客里面挂广告的推荐方法

时间:2022-10-09 12:25:11
CSDN博客里面挂广告的推荐方法 
此文章版权归JAVA世纪网(JAVA2000.net)和CSDN(CSDN.NET)所有. 
JAVA世纪网地址:http://www.java2000.net/p10652 
CSDN博客地址:http://blog.csdn.net/java2000_net/archive/2008/10/04/3015606.aspx 
如转载,请保留此说明和完整的页面内容。 


感谢  



前言 
大家应该注意到了,在CSDN的博客里面并没有挂CSDN自己的广告,我们感谢CSDN的无私奉献,我们应继续支持CSDN。 

那我们不要浪费CSDN的好意了,我们来看看如果把自己的广告放到里面去。 

一、前提条件 
CSDN的页面支持自定义的配置 
CSDN的页面内容支持比较完整的JS代码。 

二、简单的方式、 

1 帖子里面直接书写广告代码 

你可以在源代码的模式下面,直接放入你要加入的广告代码。比如: 


此方法的优点是,你可以最大限度的控制格式,加入你能加入的任何广告代码。 
缺点,每次发帖都要排版,如果你更换个广告,则以前的帖子必须重新编辑一遍。 

2 帖子里面外挂js文件 
和1区别不大,你直接在源代码里面用自己的动态JS代码。比如 


优点:可以更灵活的修改广告代码。但 
缺点:有些广告代码会有些小问题。更重要的是你需要一个稳定的外部服务器空间。如果服务器变动,你的所有帖子仍需要编辑。 

3 在配置里面直接书写广告 
大部分人都是这样直接 


优点:一次修改可以影响所有的帖子 
缺点:位置限制在左侧,切有点太窄了。 


二、我推荐使用的方式 
继续在配置里面书写广告,但广告并不局限于显示在左侧,而是可以移动到你需要的位置。比如: 
顶部的右上,那个搜索的附近; 
帖子内容的开始; 
帖子内容的结束 
评价的开始 
评价表单右侧 
整个页面的底部 

我们来看所需要的技术。 
1 如何定位广告的位置 
请看如下的代码 
查看复制到剪切板打印 
// 获取页面某个元素对象   
// 我这里使用了id属性,你也可以用其它的方法获得元素对象   
var t = document.getElementById("Anthem_Post.ascx_PostComment_CommentUpdatePanel__");   
  
// 获得左侧,顶部和上级对象   
objLeft = t.offsetLeft;   
objTop = t.offsetTop;   
objParent = t.offsetParent;   
// 如果上级元素不是BODY,则继续累计计算相对偏差   
while( objParent.tagName.toUpperCase() != "BODY" ) {   
  objLeft += objParent.offsetLeft;   
  objTop += objParent.offsetTop;   
  objParent = objParent.offsetParent;   
}   
// 我们已经拿到了我们要定位的广告元素位置了  

  // 获取页面某个元素对象 
  // 我这里使用了id属性,你也可以用其它的方法获得元素对象 
  var t = document.getElementById("Anthem_Post.ascx_PostComment_CommentUpdatePanel__"); 

  // 获得左侧,顶部和上级对象 
  objLeft = t.offsetLeft; 
  objTop = t.offsetTop; 
  objParent = t.offsetParent; 
  // 如果上级元素不是BODY,则继续累计计算相对偏差 
  while( objParent.tagName.toUpperCase() != "BODY" ) { 
    objLeft += objParent.offsetLeft; 
    objTop += objParent.offsetTop; 
    objParent = objParent.offsetParent; 
  } 
  // 我们已经拿到了我们要定位的广告元素位置了 



2 我们的广告 
查看复制到剪切板打印 
<div id="GOOGLE_COMMENT" style="position:absolute;display:none">   
<script type="text/javascript"><!--   
google_ad_client = "pub-2908059660288034";   
/* 300x250, 创建于 08-9-16 */  
google_ad_slot = "0023597101";   
google_ad_width = 300;   
google_ad_height = 250;   
//-->   
</script>   
<script type="text/javascript"  
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">   
</script>   
</div>  

<div id="GOOGLE_COMMENT" style="position:absolute;display:none"> 
<script type="text/javascript"><!-- 
google_ad_client = "pub-2908059660288034"; 
/* 300x250, 创建于 08-9-16 */ 
google_ad_slot = "0023597101"; 
google_ad_width = 300; 
google_ad_height = 250; 
//--> 
</script> 
<script type="text/javascript" 
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> 
</script> 
</div> 
里面注意我使用了GOOGLE_COMMENT作为这个广告的ID,同时设置了CSS属性为绝对定位,不显示。 

3 移动我们的广告到正确的位置 
查看复制到剪切板打印 
// 得到我们前面的广告对象   
var gg = document.getElementById("GOOGLE_COMMENT");   
// 相对于我们要放广告的位置,加上一个偏移量   
gg.style.left=(objLeft +450)+"px";   
gg.style.top = (objTop+10)+"px";   
// 显示广告   
gg.style.display="";  

  // 得到我们前面的广告对象 
  var gg = document.getElementById("GOOGLE_COMMENT"); 
  // 相对于我们要放广告的位置,加上一个偏移量 
  gg.style.left=(objLeft +450)+"px"; 
  gg.style.top = (objTop+10)+"px"; 
  // 显示广告 
  gg.style.display=""; 

4 在页面装载完毕后再显示广告 
因为我们的代码在整个页面的前部,所以不能一开始就运行,否则根本找不到一些在后面才出现的元素。 
我们把自己的代码放在一个function里面 
查看复制到剪切板打印 
function GOOGLEResize(){   
  // 我们全部的初始化代码   
}   
// 当页面装载完毕后,再运行我们的程序   
window.onload=GOOGLEResize;  

function GOOGLEResize(){ 
  // 我们全部的初始化代码 

// 当页面装载完毕后,再运行我们的程序 
window.onload=GOOGLEResize; 

5 处理页面的resize事件 
在IE里,可以简单的用 
查看复制到剪切板打印 
window.onresize=GOOGLEResize;  

window.onresize=GOOGLEResize; 
但是在Firefox里面,则必须用定时器进行定期检测才行 
查看复制到剪切板打印 
var startWidth = document.getElementsByTagName("body")[0].offsetWidth;   
function checkFFresize() {   
  var resizeWidth = document.getElementsByTagName("body")[0].offsetWidth;   
  if (resizeWidth == startWidth) {   
  } else {   
    startWidth=document.getElementsByTagName("body")[0].offsetWidth;   
    GOOGLEResize();   
  }   
  setTimeout("checkFFresize();",2000);   
}   
if (document.all) {   
} else {   
  setTimeout("checkFFresize();",1000);   
}  

var startWidth = document.getElementsByTagName("body")[0].offsetWidth; 
function checkFFresize() { 
  var resizeWidth = document.getElementsByTagName("body")[0].offsetWidth; 
  if (resizeWidth == startWidth) { 
  } else { 
    startWidth=document.getElementsByTagName("body")[0].offsetWidth; 
    GOOGLEResize(); 
  } 
  setTimeout("checkFFresize();",2000); 

if (document.all) { 
} else { 
  setTimeout("checkFFresize();",1000); 


6 处理页面的异常 
屏蔽掉可能出现的异常 
查看复制到剪切板打印 
function killErrors() {   
return true;   
}   
window.onerror = killErrors;   

function killErrors() { 
return true; 

window.onerror = killErrors; 

至此,我所需要的代码已经全部完成了。 

三、我的广告的完整代码 
查看复制到剪切板打印 
<script type="text/javascript">   
function killErrors() {   
return true;   
}   
window.onerror = killErrors;    
  
var init = false;   
function GOOGLEResize(){   
  var subject = document.getElementById("Post.ascx_ViewPost_PreviousAndNextEntriesUp");   
  if(!init){   
    subject.innerHTML = subject.innerHTML+"<br/><br/><br/><br/><br/><br/><hr/><br/>";   
    init = true;   
  }   
  var t = document.getElementById("Anthem_Post.ascx_PostComment_CommentUpdatePanel__");   
  var gg = document.getElementById("GOOGLE_COMMENT");   
  
  objLeft = t.offsetLeft;   
  objTop = t.offsetTop;   
  objParent = t.offsetParent;   
  while( objParent.tagName.toUpperCase() != "BODY" )   
  {   
    objLeft += objParent.offsetLeft;   
    objTop += objParent.offsetTop;   
    objParent = objParent.offsetParent;   
  }   
  
  gg.style.left=(objLeft +450)+"px";   
  gg.style.top = (objTop+10)+"px";   
  gg.style.display="";   
  
  
  objLeft = subject .offsetLeft;   
  objTop = subject .offsetTop;   
  objParent = subject .offsetParent;   
  while( objParent.tagName.toUpperCase() != "BODY" )   
  {   
    objLeft += objParent.offsetLeft;   
    objTop += objParent.offsetTop;   
    objParent = objParent.offsetParent;   
  }   
  
  var gg728=document.getElementById("GOOGLE_TOP");   
  gg728.style.left = objLeft+"px";   
  gg728.style.top = (objTop+50)+"px";   
  gg728.style.display="";   
}   
  
window.onresize=GOOGLEResize;   
window.onload=GOOGLEResize;   
var startWidth = document.getElementsByTagName("body")[0].offsetWidth;   
function checkFFresize() {   
  var resizeWidth = document.getElementsByTagName("body")[0].offsetWidth;   
  if (resizeWidth == startWidth) {   
  } else {   
    startWidth=document.getElementsByTagName("body")[0].offsetWidth;   
    GOOGLEResize();   
  }   
  setTimeout("checkFFresize();",2000);   
}   
if (document.all) {   
} else {   
  setTimeout("checkFFresize();",1000);   
}   
</script>   
  
<script type="text/javascript"><!--   
google_ad_client = "pub-2908059660288034";   
/* CSDN摩天 160x600, 创建于 08-9-17 */  
google_ad_slot = "5598761730";   
google_ad_width = 160;   
google_ad_height = 600;   
//-->   
</script>   
<script type="text/javascript"  
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">   
</script>   
  
<div id="GOOGLE_TOP" style="position:absolute; top:248px;left:250px;width:728;height:90;display:none"><script type="text/javascript"><!--   
google_ad_client = "pub-2908059660288034";   
/* CSDN横幅 728x90, 创建于 08-9-17 */  
google_ad_slot = "9488011826";   
google_ad_width = 728;   
google_ad_height = 90;   
//-->   
</script>   
<script type="text/javascript"  
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">   
</script></div>   
  
<div id="GOOGLE_COMMENT" style="position:absolute;display:none">   
<script type="text/javascript"><!--   
google_ad_client = "pub-2908059660288034";   
/* 300x250, 创建于 08-9-16 */  
google_ad_slot = "0023597101";   
google_ad_width = 300;   
google_ad_height = 250;   
//-->   
</script>   
<script type="text/javascript"  
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">   
</script>   
</div>  

<script type="text/javascript"> 
function killErrors() { 
return true; 

window.onerror = killErrors; 

var init = false; 
function GOOGLEResize(){ 
  var subject = document.getElementById("Post.ascx_ViewPost_PreviousAndNextEntriesUp"); 
  if(!init){ 
    subject.innerHTML = subject.innerHTML+"<br/><br/><br/><br/><br/><br/><hr/><br/>"; 
    init = true; 
  } 
  var t = document.getElementById("Anthem_Post.ascx_PostComment_CommentUpdatePanel__"); 
  var gg = document.getElementById("GOOGLE_COMMENT"); 

  objLeft = t.offsetLeft; 
  objTop = t.offsetTop; 
  objParent = t.offsetParent; 
  while( objParent.tagName.toUpperCase() != "BODY" ) 
  { 
    objLeft += objParent.offsetLeft; 
    objTop += objParent.offsetTop; 
    objParent = objParent.offsetParent; 
  } 

  gg.style.left=(objLeft +450)+"px"; 
  gg.style.top = (objTop+10)+"px"; 
  gg.style.display=""; 


  objLeft = subject .offsetLeft; 
  objTop = subject .offsetTop; 
  objParent = subject .offsetParent; 
  while( objParent.tagName.toUpperCase() != "BODY" ) 
  { 
    objLeft += objParent.offsetLeft; 
    objTop += objParent.offsetTop; 
    objParent = objParent.offsetParent; 
  } 

  var gg728=document.getElementById("GOOGLE_TOP"); 
  gg728.style.left = objLeft+"px"; 
  gg728.style.top = (objTop+50)+"px"; 
  gg728.style.display=""; 


window.onresize=GOOGLEResize; 
window.onload=GOOGLEResize; 
var startWidth = document.getElementsByTagName("body")[0].offsetWidth; 
function checkFFresize() { 
  var resizeWidth = document.getElementsByTagName("body")[0].offsetWidth; 
  if (resizeWidth == startWidth) { 
  } else { 
    startWidth=document.getElementsByTagName("body")[0].offsetWidth; 
    GOOGLEResize(); 
  } 
  setTimeout("checkFFresize();",2000); 

if (document.all) { 
} else { 
  setTimeout("checkFFresize();",1000); 

</script> 

<script type="text/javascript"><!-- 
google_ad_client = "pub-2908059660288034"; 
/* CSDN摩天 160x600, 创建于 08-9-17 */ 
google_ad_slot = "5598761730"; 
google_ad_width = 160; 
google_ad_height = 600; 
//--> 
</script> 
<script type="text/javascript" 
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> 
</script> 

<div id="GOOGLE_TOP" style="position:absolute; top:248px;left:250px;width:728;height:90;display:none"><script type="text/javascript"><!-- 
google_ad_client = "pub-2908059660288034"; 
/* CSDN横幅 728x90, 创建于 08-9-17 */ 
google_ad_slot = "9488011826"; 
google_ad_width = 728; 
google_ad_height = 90; 
//--> 
</script> 
<script type="text/javascript" 
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> 
</script></div> 

<div id="GOOGLE_COMMENT" style="position:absolute;display:none"> 
<script type="text/javascript"><!-- 
google_ad_client = "pub-2908059660288034"; 
/* 300x250, 创建于 08-9-16 */ 
google_ad_slot = "0023597101"; 
google_ad_width = 300; 
google_ad_height = 250; 
//--> 
</script> 
<script type="text/javascript" 
src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> 
</script> 
</div> 

希望大家用的开心