想拥有像我的blog一样的日历吗?不但有日历的功能,更可链接到当日你所写的所有日志。
首先在 选项->配置->定制CSS选择器 中的加入如下样式代码: /*calendar css*/
@charset "utf-8";
/* w 165px h 120px*/ .calendar {width:165px;height:120px;border:1px solid #000000;background-color:#0000CC;table-layout:fixed; } .calendar .cal{text-align:center;font-family:tahoma;font-size:10px; } .calendar .focus{color:#ff0000;font-weight:bolder; } #csdnCal table{table-layout:fixed; } #csdnCal td{background-color:#ffffff; } #csdnCal td,th{text-align:center;font-family:tahoma;font-size:10px; } #csdnCal th{height:17px;color:#ffffff;border-bottom:1px solid #000000; } #csdnCal a{color:#000000;text-decoration:underline } #csdnCal button{border-width:1px;height:14px;width:15px;padding-top:-5px;background:#eeeeee;position:relative; } #csdnCal span{font-family:webdings;font-size:9px;top:-3px;left:1px;position:absolute;cursor:hand; }
/*end of calendar css*/
然后在 静态声明/新闻 中加入javascript: <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 onmouseup="void('+this.objName+'.nextMonth())" hidefocus="true"><span>4</span></button></td>' // +'</tr></table>'; // } // else // { this.dateTable+='<td><button onmouseup="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 onmouseup="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='passants';//这里注意,请改成你的csdn blog的用户名! document.write(csdnBlogCalendar.generate(null)); csdnBlogCalendar.focusDate(); </script> </div>
OK,就是这么简单,你马上就能拥有一个非常酷且功能不错的日历了。 
|