2010-3-20 CSDN博客公告區取消使用腳本的功能的備份!

<script lnguage="Javascript">
function calendar(objName,name,date,width,height){
 this.objName=objName;
 this.calendarName=name!=null?name.toString():'calendar';
 this.width=width!=null?width:'100%';
 this.height=height!=null?height:'100%';
 this.dayName=['日','一','二','三','四','五','六'];
 this.nowDate=new Date();
 this.dateTime=date!=null?date:new Date();
 this.str='';
 this.dateTable='';
 this.days=31;
 this.pastDays=0;
 this.generated=false;

 this.generate=generate;
 this.getTable=getTable;
 this.focusDate=focusDate;
 this.attachLink=attachLink;
 this.refresh=refresh;
 this.previousMonth=previousMonth;
 this.nextMonth=nextMonth;
 this.setDate=setDate;
 this.afterRefresh=function(){};

 function generate(date){
  this.str='<table id="'+this.calendarName+'" class="cal" cellspacing="0" cellpadding="2" border="0" width="'
   +this.width+'" height="'
   +this.width+'"><tr><th onselectstart="return(false)"><font style="font-size:9pt">'
   +this.dayName.join('</th><th onselectstart="return(false)"><font style="font-size:9pt">')+'</font></th></tr>';
  this.dateTime=date!=null?new Date(date):this.dateTime;
  this.days=new Date(this.dateTime.getYear(),this.dateTime.getMonth()+1,0).getDate();
  this.pastDays=new Date(this.dateTime.getFullYear()+'/'+(this.dateTime.getMonth()+1)+'/1').getDay();
  this.str+='<tr><td colspan="7" id="'+this.calendarName+'Td" style="filter:blendtrans(duration=0.3)">';//濾鏡,轉換月份時的效果。
  this.getTable();
  this.str+=this.dateTable+'</td></tr></table>';
  this.generated=true;
  return this.str;
 }
 
 function getTable(){
  this.dateTable='<table width="100%" height="100%" cellspacing="2" cellpadding="1" class="caltb"><tr>'
   +new Array(this.pastDays+1).join('<td></td>');
  for(var i=1;i<=this.days;i++){
  var monthValue = (this.dateTime.getMonth()+1);
  if(monthValue <10) monthValue="0"+monthValue;
  var dayValue = i;
  if(i<10) dayValue ="0"+dayValue;
 
  var openurl = '<td id="'+this.calendarName+i+'">'+'<a href="http://blog.csdn.net/'+this.channel+'/archive/'+this.dateTime.getFullYear()+'/'+monthValue+'/'+dayValue+'.aspx">'+i+'</a></td>';
  var ropenurl = '<td id="'+this.calendarName+i+'">'+'<a href="http://blog.csdn.net/'+this.channel+'/archive/'+this.dateTime.getFullYear()+'/'+monthValue+'/'+dayValue+'.aspx"><font color="red">'+i+'</font></a></td>';
  var closeurl='<td id="'+this.calendarName+i+'">'+i+'</td>';
 
  if(this.dateTime.getFullYear() > this.nowDate.getFullYear())
  {
   this.dateTable+=closeurl;
  }
  else
  if(this.dateTime.getFullYear()== this.nowDate.getFullYear())
  {
   if(this.dateTime.getMonth() > this.nowDate.getMonth())
   {
    this.dateTable+=closeurl;
   }
   else
   if(this.dateTime.getMonth() == this.nowDate.getMonth())
   {
    if(i<=this.nowDate.getDate())
    {
     if(i == this.nowDate.getDate())
     {
      this.dateTable+=ropenurl;
     }
     else
     this.dateTable+=openurl;
    }
    else
    {
     this.dateTable+=closeurl;
    }
   }
   else
   {
    this.dateTable+=openurl;
   }
  }
  else
   this.dateTable+=openurl;
    if((i+this.pastDays)%7==0)this.dateTable+='</tr><tr>';
  }
  for(var i=1;i<=37-this.days-this.pastDays;i++){
   this.dateTable+='<td></td>';
   if((i+this.pastDays+this.days)%7==0)this.dateTable+='</tr><tr>';
  }
//控制條件,可以不顯示某年某月前的日曆(去掉註釋即可)
//  if((this.dateTime.getFullYear()<=2004) && (this.dateTime.getMonth()<9))
//  {
//     this.dateTable+='<td><button hidefocus="true"><span>3</span></button></td>'
//   +'<td colspan="2">'+this.dateTime.getFullYear().toString().bold()+'</td>'
//   +'<td>'+(this.dateTime.getMonth()+1).toString().bold()+'</td>'
//   +'<td><button οnmοuseup="void('+this.objName+'.nextMonth())" hidefocus="true"><span>4</span></button></td>'
//   +'</tr></table>';
//  }
//  else
//  {
  this.dateTable+='<td><button οnmοuseup="void('+this.objName+'.previousMonth())" hidefocus="true"><span>3</span></button></td>'
   +'<td colspan="2">'+this.dateTime.getFullYear().toString().bold()+'</td>'
   +'<td>'+(this.dateTime.getMonth()+1).toString().bold()+'</td>'
   +'<td><button οnmοuseup="void('+this.objName+'.nextMonth())" hidefocus="true"><span>4</span></button></td>'
   +'</tr></table>';
//  }
  return this.dateTable;
 }
 function focusDate(date){
  try{
   eval(this.calendarName+(date!=null?date|0:new Date().getDate())+'.className="focus"');
   return(true);
  } catch(e) { return(false); }
 }
 function attachLink(date,link,target,title){
  try{
   eval(this.calendarName+(date!=null?date|0:new Date().getDate())
    +'.innerHTML="<a href=//"'+link+'//"'
    +' target=//"'+(target!=null?target:'_self')+'//"'
    +' title=//"'+(title!=null?title:'')+'//">'+date.toString()+'</a>"');
   return(true);
  } catch(e) { alert(e.message);return(false); }
 }
 function refresh(){
  try{
   eval(this.calendarName+'Td.filters[0].apply()');
   eval(this.calendarName+'Td.innerHTML=/''+this.getTable()+'/'');
   eval(this.calendarName+'Td.filters[0].play()');
   this.afterRefresh();
   return(true);
  } catch(e) { return(false); }
 }
 function previousMonth(){
  try{
   this.dateTime.setMonth(this.dateTime.getMonth()-1)
   this.generate();
   this.refresh();
   return(true);
  } catch(e) { return(false); }
 }
 function nextMonth(){
  try{
   this.dateTime.setMonth(this.dateTime.getMonth()+1)
   this.generate();
   this.refresh();
   return(true);
  } catch(e) { return(false); }
 }
 function setDate(dateStr){
  try{
   this.dateTime=new Date(dateStr);
   return(true);
  } catch(e) { return(false); }
 }
}
</script>
<div id="csdnCal" class="calendar">
<script lnguage="Javascript">
var csdnBlogCalendar=new calendar("csdnBlogCalendar","csdnBlogCal");
csdnBlogCalendar.channel='myid';//這裏注意,請改成你的csdn blog的用戶名!
document.write(csdnBlogCalendar.generate(null));
csdnBlogCalendar.focusDate();
</script>
</div>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章