📄 yscalendar.js
字号:
/* * Author: squirrel(3674297) * CreateDate: 20060419 * EMAIL:yus_703@hotmail.com;yus_703@163.com * ModifyDate: 20060502 */var YsBeginDay="";var YsEndDay="";var maxYear=2056;var minYear=1956;var useGb = false;var useTitle = false;document.write("<style>.ys_pop{border:#8F8F73 1px solid;}</style>");function YsCalendar(){ this.regInfo = "YS Calendar ver 1.0 作者:squirrel(3674297) 网站:http://www.scys.cn/
"; this.regInfo += " Ver 1.0:squirrel(3674297)"; this.daysMonth = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); this.weekday = new Array(0,1,2,3,4,5,6); this.day = new Array(38);this.dayObj = new Array(38); this.dateStyle = null; this.objExport = null; this.inputDate = null; this.thisYear = new Date().getFullYear(); this.thisMonth = new Date().getMonth()+ 1; this.thisDay = new Date().getDate(); this.today = this.thisDay +"/"+ this.thisMonth +"/"+ this.thisYear; this.frmobj;this.dateReg = /^(\d{1,4})(-|\/|.)(\d{1,2})\2(\d{1,2})$/; this.yearFall = 50; this.format = "yyyy-mm-dd"; this.darkColor = "#FFFFFF"; this.lightColor = "#FF0000"; this.btnBgColor = "#FFFFFF"; this.wordColor = "#000000"; this.wordDark = "#DCDCDC"; this.dayBgColor = "#FFFFFF"; this.todayColor = "#0000FF"; this.DarkBorder = "#FFFFFF"; this.HeadBgColor= "#808080"; this.HeadColor = "#FFFFFF"; this.Top = 0; this.Left = 0; this.BeginDay = YsBeginDay; this.EndDay = YsEndDay; this.maxYear = maxYear; this.minYear = minYear; this.useGb = useGb; this.useTitle = useTitle; };var YCalendar = new YsCalendar();function Hide(){try{YCalendar.frmobj.width=YCalendar.frmobj.height=0;document.body.removeChild(YCalendar.frmobj);YCalendar.frmobj=null;}catch(e){}};function calender(obj){if(YCalendar.frmobj!=null)return ;var fname="ysdate"; YCalendar.objExport=obj;GetAbsLoc(obj); YCalendar.frmobj=window.document.createElement("iframe"); YCalendar.frmobj.id=fname;YCalendar.frmobj.name=fname; YCalendar.frmobj.frameBorder="0"; YCalendar.frmobj.scrolling="no";YCalendar.frmobj.style.position="absolute"; YCalendar.frmobj.className="ys_pop"; YCalendar.frmobj.style.left=YCalendar.Left; YCalendar.frmobj.style.top=YCalendar.Top; YCalendar.frmobj.width=140; YCalendar.frmobj.height=166;YCalendar.frmobj.style.zIndex=1000; window.document.body.appendChild(YCalendar.frmobj); cDocument=YCalendar.frmobj.contentWindow.document; cDocument.open();cDocument.write("");cDocument.close(); cDocument.body.style.margin=cDocument.body.style.padding="0px"; YCalendar.frmobj.onblur=Hide;writecalender(); try{if (YCalendar.objExport.value != ""){if(YCalendar.useGb){var tmpValue = YCalendar.objExport.value; tmpValue=charReplace(tmpValue,'年','-','g'); tmpValue=charReplace(tmpValue,'月','-','g'); var a = tmpValue.split("-");a[1]=charReplace(a[1],'十','10','g');a[2]=charReplace(a[2],'三十一','31','g');a[2]=charReplace(a[2],'廿十','20','g'); a[2]=charReplace(a[2],'三十','30','g');a[2]=charReplace(a[2],'廿一','21','g');a[2]=charReplace(a[2],'廿','2','g'); if(a[2].length==1){a[2]=charReplace(a[2],'十','10','g');}else{a[2]=charReplace(a[2],'十','1','g');}tmpValue=a[0]+'-'+appendZero(a[1])+'-'+appendZero(a[2]); tmpValue=charReplace(tmpValue,'○','0','g');tmpValue=charReplace(tmpValue,'一','1','g'); tmpValue=charReplace(tmpValue,'二','2','g');tmpValue=charReplace(tmpValue,'三','3','g');tmpValue=charReplace(tmpValue,'四','4','g');tmpValue=charReplace(tmpValue,'五','5','g'); tmpValue=charReplace(tmpValue,'六','6','g');tmpValue=charReplace(tmpValue,'七','7','g'); tmpValue=charReplace(tmpValue,'八','8','g');tmpValue=charReplace(tmpValue,'九','9','g'); YCalendar.inputDate=tmpValue;} if(YCalendar.useGb){YCalendar.dateStyle = YCalendar.inputDate.match(YCalendar.dateReg);}else{YCalendar.dateStyle = YCalendar.objExport.value.match(YCalendar.dateReg);} if (YCalendar.dateStyle == null){YCalendar.thisYear = new Date().getFullYear(); YCalendar.thisMonth = new Date().getMonth()+ 1;YCalendar.thisDay = new Date().getDate(); }else{YCalendar.thisYear = parseInt(YCalendar.dateStyle[1], 10); YCalendar.thisMonth = parseInt(YCalendar.dateStyle[3], 10);YCalendar.thisDay = parseInt(YCalendar.dateStyle[4], 10); YCalendar.inputDate = parseInt(YCalendar.thisDay, 10) +"/"+ parseInt(YCalendar.thisMonth, 10) +"/"+ parseInt(YCalendar.thisYear, 10);}}}catch(e){}printCalendar();};function writecalender(){ var strIframe = "<html><head><meta http-equiv='Content-Type' content='text/html; charset=gb2312'>"+ "<style>body{font-size: 12px; font-family: 宋体}"+ ".bg{font-size: 12px; font-family: 宋体;cursor: default;color:"+YCalendar.HeadColor+";}"+ ".tile{font-size: 12px; font-family: 宋体;cursor: default;}"+ ".bg1{cursor: default;color:"+YCalendar.HeadColor+";font-size: 12px; font-family: Wingdings 3;}"+ "table#tableMain{ width: 142; height: 180;font-size: 12px; font-family: 宋体}"+ ".out { font-size: 12px; font-family: 宋体;text-align: center;border-top: 1px solid #ffffff; border-left: 1px solid #ffffff;border-bottom: 1px solid #ffffff; border-right: 1px solid #ffffff}"+ ".day {border:0;cursor: default;font-size: 12px; font-family: 宋体;}"+ ".show{border:0;width:20px;cursor: default;font-size: 12px; font-family: 宋体;}"+ ".showyear{border:0;width:45px;cursor: default;font-size: 12px; font-family: 宋体;}"+ ".over{ font-size: 12px; font-family: 宋体;text-align: center; border-top: 1px solid #990000; border-left: 1px solid #990000;border-bottom: 1px solid #990000; border-right: 1px solid #990000}"+ "input{ font-size: 12px; font-family: 宋体;border: 1px solid "+ YCalendar.darkColor +"; padding-top: 1px; height: 18; cursor: hand;"+" color:"+ YCalendar.wordColor +"; background-color: "+ YCalendar.btnBgColor +"}"+ "</style></head><body onload='focus();' onselectstart='return false' style='margin: 0px' oncontextmenu='return false'>"; strIframe += "<select name='tmpYearSelect' onblur='parent.hiddenSelect(this)' id='tmpYearSelect' class='body' style='z-index:1;position:absolute;width:53px;top:3;left:18;display:none' onchange='parent.YCalendar.thisYear =this.value; parent.hiddenSelect(this); parent.printCalendar();'></select>"+ "<select name='tmpMonthSelect' onblur='parent.hiddenSelect(this)' id='tmpMonthSelect' style='z-index:1; position:absolute;top:3;left:74;width:35px;display:none' onchange='parent.selectM(this)'></select>"; strIframe += "<table id=tableMain class=bg border=0 cellspacing=0 cellpadding=0>"+ "<tr><td width=140 height=19 bgcolor='"+YCalendar.HeadBgColor+"'>"+ "<table width=140 id=tableHead border=0 cellspacing=1 cellpadding=0><tr align=center>"+ "<td width=30 height=19 class=bg><table width='100%'><tr><td height=19 class=bg title='上一年' style='cursor: hand' onclick='parent.prevY()'><font face='Wingdings 3'>||</font></td>"+ "<td height=19 class=bg title='上一月' style='cursor: hand' onclick='parent.prevM()'><font face='Wingdings 3'>|</font></td></tr></table></td>"+ "<td width=50 id=ysYearHead title='点击选择年份' align='right' class=bg onclick='parent.funYearSelect(parseInt(this.innerHtml, 10))'></td>"+ "<td width=40 id=ysYearMonth title='点击选择月份' align='left' class=bg onclick='parent.funMonthSelect(parseInt(this.innerHtml, 10))'></td>"+ "<td width=30 class=bg><table width='100%'><tr><td height=19 class=bg title='下一月' style='cursor: hand' onclick='parent.nextM()'><font face='Wingdings 3'>}</font></td>"+ "<td height=19 class=bg title='下一年' style='cursor: hand' onclick='parent.nextY()'><font face='Wingdings 3'>}}</font></td></tr></table></td></tr></table>"+"</td></tr><tr><td height=20><table id='tableWeek' border=0 width=140 cellpadding=0 cellspacing=0>"; strIframe += "<tr align=center class=tile><td height='20'>日</td><td>一</td><td>二</td><td>三</td><td>四</td><td>五</td><td>六</td></tr>"+ "<tr><td colspan='7' height='1' align='center'><table width='98%' border='0' height='1'><tr><td width='100%' bgcolor='#8F8F73'></td></tr></table></td></tr></table>"+ "</td></tr><tr><td valign=top width=140>"+ "<table id=tableDay height=120 width=140 border=0 cellspacing=0 cellpadding=0>"; for(var x=0; x<5; x++){ strIframe += "<tr>"; for(var y=0; y<7; y++) strIframe += "<td class=out id='ysDay"+ (x*7+y) +"'></td>"; strIframe += "</tr>"; } strIframe += "<tr>"; for(var x=35; x<38; x++) strIframe += "<td height='16' class=out id='ysDay"+ x +"'></td>"; strIframe +="<td colspan=2 class='out' height='19' title='"+ YCalendar.regInfo +"' style='cursor: hand;padding-top: 1px;' align='center' onclick='parent.reToday();'>今天</td>"; strIframe +="<td colspan=2 class='out' height='19' title='"+ YCalendar.regInfo +"' style='cursor: hand;padding-top: 1px;' align='center' onclick='parent.Hide();'>关闭</td></tr><tr><td height='0' colspan='7'></td></tr></table>"+ "</td></tr><table>"; strIframe +="</body></html>"; cDocument=YCalendar.frmobj.contentWindow.document; cDocument.open(); cDocument.write(strIframe); for(var i=0; i<38; i++){YCalendar.dayObj[i]=cDocument.getElementById('ysDay'+ i); YCalendar.dayObj[i].onmouseover = dayMouseOver; YCalendar.dayObj[i].onmouseout = dayMouseOut; YCalendar.dayObj[i].onclick = returnDate; } cDocument.close();}function GetAbsLoc(obj){var offsetTop = obj.offsetTop; var offsetLeft = obj.offsetLeft; var offsetWidth = obj.offsetWidth; var offsetHeight = obj.offsetHeight; while( obj = obj.offsetParent ){ offsetTop += obj.offsetTop; offsetLeft += obj.offsetLeft; } YCalendar.Left=offsetLeft; YCalendar.Top=offsetTop+offsetHeight;}function reToday(){ var d = new Date().getDate() +'/'+ (new Date().getMonth() +1) +'/'+ new Date().getFullYear(); var b = new Date((new Date().getMonth() +1) +'/'+ new Date().getDate() +'/'+ new Date().getFullYear()); try{ bgd=new Date(YCalendar.BeginDay); endd=new Date(YCalendar.EndDay); }catch (e) {} if(b < bgd){return;} if(b > endd){return;} toCtrole(d);}function printCalendar(){ var y = YCalendar.thisYear; var m = YCalendar.thisMonth; var d = YCalendar.thisDay; YCalendar.daysMonth[1] = (0==y%4 && (y%100!=0 || y%400==0)) ? 29 : 28; if (!(y<=9999 && y >= 1000 && parseInt(m, 10)>0 && parseInt(m, 10)<13 && parseInt(d, 10)>0)){ YCalendar.thisYear = new Date().getFullYear(); YCalendar.thisMonth = new Date().getMonth()+ 1;YCalendar.thisDay = new Date().getDate(); } y = YCalendar.thisYear; m = YCalendar.thisMonth; d = YCalendar.thisDay; var cDocument=YCalendar.frmobj.contentWindow.document; cDocument.getElementById('ysYearHead').innerHTML = y +" 年";cDocument.getElementById('ysYearHead').style.color = YCalendar.HeadColor; cDocument.getElementById('ysYearMonth').innerHTML = parseInt(m, 10) +" 月"; cDocument.getElementById('ysYearMonth').style.color = YCalendar.HeadColor; YCalendar.daysMonth[1] = (0==y%4 && (y%100!=0 || y%400==0)) ? 29 : 28; var w = new Date(y, m-1, 1).getDay(); var prevDays = m==1 ? YCalendar.daysMonth[11] : YCalendar.daysMonth[m-2]; for(var i=(w-1); i>=0; i--){ YCalendar.day[i] = prevDays +"/"+ (parseInt(m, 10)-1) +"/"+ y; if(m==1) YCalendar.day[i] = prevDays +"/"+ 12 +"/"+ (parseInt(y, 10)-1); prevDays--; } for(var i=1; i<=YCalendar.daysMonth[m-1]; i++) YCalendar.day[i+w-1] = i +"/"+ m +"/"+ y;for(var i=1; i<38-w-YCalendar.daysMonth[m-1]+1; i++){ YCalendar.day[YCalendar.daysMonth[m-1]+w-1+i] = i +"/"+ (parseInt(m, 10)+1) +"/"+ y;if(m==12) YCalendar.day[YCalendar.daysMonth[m-1]+w-1+i] = i +"/"+ 1 +"/"+ (parseInt(y, 10)+1); } for(var i=0; i<38; i++){ var a = YCalendar.day[i].split("/"); var forday=a[1]+"/"+a[0]+"/"+a[2]; YCalendar.dayObj[i].innerHTML = a[0]; YCalendar.dayObj[i].bgColor = YCalendar.dayBgColor; YCalendar.dayObj[i].style.color = YCalendar.wordColor; if(YCalendar.useTitle)YCalendar.dayObj[i].title = a[2] +"-"+ appendZero(a[1]) +"-"+ appendZero(a[0]);if ((i<10 && parseInt(YCalendar.day[i], 10)>20) || (i>27 && parseInt(YCalendar.day[i], 10)<12)){ YCalendar.dayObj[i].style.color = YCalendar.wordDark; YCalendar.dayObj[i].innerHTML=''; } if (YCalendar.inputDate==YCalendar.day[i]){ YCalendar.dayObj[i].className="over";} d=new Date(forday); day = d.getUTCDay();if(YCalendar.weekday[day]==6||YCalendar.weekday[day]==5){ YCalendar.dayObj[i].bgColor = YCalendar.darkColor; YCalendar.dayObj[i].style.color = YCalendar.lightColor; } try{bgd=new Date(YCalendar.BeginDay); endd=new Date(YCalendar.EndDay); }catch (e) {}if(d < bgd && bgd!= ''){ YCalendar.dayObj[i].style.color = YCalendar.wordDark; YCalendar.dayObj[i].onclick = null; }else if(d > endd && endd!= ''){ YCalendar.dayObj[i].style.color = YCalendar.wordDark; YCalendar.dayObj[i].onclick = null; }else{ YCalendar.dayObj[i].onclick = returnDate; } if (YCalendar.day[i] == YCalendar.today){ YCalendar.dayObj[i].bgColor = YCalendar.darkColor; YCalendar.dayObj[i].style.color = YCalendar.todayColor; } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -