📄 popcalendar.js
字号:
var language = 'en'; var enablePast = 0; var fixedX = -1; var fixedY = -1; var startAt = 1; var showWeekNumber = 0; var showToday = 1; var imgDir = 'images/'; var dayName = '日'; var gotoString = { en : '当前月' }; var todayString = { en : '今天:' }; var weekString = { en : '星期' }; var scrollLeftMessage = { en : '上月' }; var scrollRightMessage = { en : '下月' }; var selectMonthMessage = { en : '选择月份.' }; var selectYearMessage = { en : '选择年份.' }; var selectDateMessage = { en : 'Go' }; var monthName = { en : new Array('1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月') }; var monthName2 = { en : new Array('1','2','3','4','5','6','7','8','9','10','11','12') }; if (startAt==0) { dayName = { en : new Array('星期日','星期一','星期二','星期三','星期四','星期五','星期六') }; } else { dayName = { en : new Array('一','二','三','四','五','六','日') }; } var crossobj, crossMonthObj, crossYearObj, monthSelected, yearSelected, dateSelected, omonthSelected, oyearSelected, odateSelected, monthConstructed, yearConstructed, intervalID1, intervalID2, timeoutID1, timeoutID2, ctlToPlaceValue, ctlNow, dateFormat, nStartingYear, selDayAction, isPast; var visYear = 0; var visMonth = 0; var bPageLoaded = false; var ie = document.all; var dom = document.getElementById; var ns4 = document.layers; var today = new Date(); var dateNow = today.getDate(); var monthNow = today.getMonth(); var yearNow = today.getYear(); var timeNow = today.getHours() + ":" + today.getMinutes() +":" + today.getSeconds(); var imgsrc = new Array('pcaldrop1.gif','pcaldrop2.gif','pcalleft1.gif','pcalleft2.gif','pcalright1.gif','pcalright2.gif'); var img = new Array(); var bShow = false; function hideElement( elmID, overDiv ) { if(ie) { for(i = 0; i < document.all.tags( elmID ).length; i++) { obj = document.all.tags( elmID )[i]; if(!obj || !obj.offsetParent) continue; // Find the element's offsetTop and offsetLeft relative to the BODY tag. objLeft = obj.offsetLeft; objTop = obj.offsetTop; objParent = obj.offsetParent; while(objParent.tagName.toUpperCase() != 'BODY') { objLeft += objParent.offsetLeft; objTop += objParent.offsetTop; objParent = objParent.offsetParent; } objHeight = obj.offsetHeight; objWidth = obj.offsetWidth; if((overDiv.offsetLeft + overDiv.offsetWidth) <= objLeft); else if((overDiv.offsetTop + overDiv.offsetHeight) <= objTop); /* CHANGE by Charlie Roche for nested TDs*/ else if(overDiv.offsetTop >= (objTop + objHeight + obj.height)); /* END CHANGE */ else if(overDiv.offsetLeft >= (objLeft + objWidth)); else { obj.style.visibility = 'hidden'; } } } } function showElement(elmID) { if(ie) { for(i = 0; i < document.all.tags( elmID ).length; i++) { obj = document.all.tags(elmID)[i]; if(!obj || !obj.offsetParent) continue; obj.style.visibility = ''; } } } function HolidayRec (d, m, y, desc) { this.d = d; this.m = m; this.y = y; this.desc = desc; } var HolidaysCounter = 0; var Holidays = new Array(); function addHoliday (d, m, y, desc) { Holidays[HolidaysCounter++] = new HolidayRec (d, m, y, desc); } if (dom) { for (i=0;i<imgsrc.length;i++) { img[i] = new Image; img[i].src = imgDir + imgsrc[i]; } document.write ('<div onclick="bShow=true" id="calendar" style="z-index:+999;position:absolute;visibility:hidden;"><table width="'+((showWeekNumber==1)?250:220)+'" style="font-family:ms shell dlg;font-size:12px;border: 1px solid #A0A0A0;" bgcolor="#ffffff"><tr bgcolor="#000066"><td><table width="'+((showWeekNumber==1)?248:218)+'"><tr><td style="padding:2px;font-family:ms shell dlg;font-size:12px;"><font color="#ffffff' + '' /*C9D3E9*/ +'"><b><span id="caption"></span></b></font></td><td align="right"><a href="javascript:hideCalendar()"><img src="'+imgDir+'pcalclose.gif" width="15" height="13" border="0" /></a></td></tr></table></td></tr><tr><td style="padding:5px" bgcolor="#ffffff"><span id="content"></span></td></tr>'); if (showToday == 1) { document.write ('<tr bgcolor="#f0f0f0"><td style="padding:5px" align="center"><span id="lblToday"></span></td></tr>'); } document.write ('</table></div><div id="selectMonth" style="z-index:+999;position:absolute;visibility:hidden;"></div><div id="selectYear" style="z-index:+999;position:absolute;visibility:hidden;"></div>'); } var styleAnchor = 'text-decoration:none;color:black;'; var styleLightBorder = 'border:1px solid #a0a0a0;'; function swapImage(srcImg, destImg) { if (ie) document.getElementById(srcImg).setAttribute('src',imgDir + destImg); } function init() { if (!ns4) { if (!ie) yearNow += 1900; crossobj=(dom)?document.getElementById('calendar').style : ie? document.all.calendar : document.calendar; hideCalendar(); crossMonthObj = (dom) ? document.getElementById('selectMonth').style : ie ? document.all.selectMonth : document.selectMonth; crossYearObj = (dom) ? document.getElementById('selectYear').style : ie ? document.all.selectYear : document.selectYear; monthConstructed = false; yearConstructed = false; if (showToday == 1) { document.getElementById('lblToday').innerHTML = '<font color="#000066">' + todayString[language] + ' <a onmousemove="window.status=\''+gotoString[language]+'\'" onmouseout="window.status=\'\'" title="'+gotoString[language]+'" style="'+styleAnchor+'" href="javascript:monthSelected=monthNow;yearSelected=yearNow;constructCalendar();">'+weekString[language]+dateNow+','+yearNow+'年'+monthName[language][monthNow].substring(0,3)+dayName[language][(today.getDay()-startAt==-1)?6:(today.getDay()-startAt)]+', ' + dateNow + '</a></font>'; } sHTML1 = '<span id="spanLeft" style="border:1px solid #36f;cursor:pointer" onclick="decMonth()" onmousedown="clearTimeout(timeoutID1);timeoutID1=setTimeout(\'StartDecMonth()\',500)" onmouseup="clearTimeout(timeoutID1);clearInterval(intervalID1)"> <img id="changeLeft" src="'+imgDir+'pcalleft1.gif" width="10" height="11" border="0"> </span> '; sHTML1 += '<span id="spanRight" style="border:1px solid #36f;cursor:pointer" onclick="incMonth()" onmousedown="clearTimeout(timeoutID1);timeoutID1=setTimeout(\'StartIncMonth()\',500)" onmouseup="clearTimeout(timeoutID1);clearInterval(intervalID1)"> <img id="changeRight" src="'+imgDir+'pcalright1.gif" width="10" height="11" border="0"> </span> '; sHTML1 += '<span id="spanMonth" style="border:1px solid #36f;cursor:pointer" onclick="popUpMonth()"></span> '; sHTML1 += '<span id="spanYear" style="border:1px solid #36f;cursor:pointer" onclick="popUpYear()"></span> '; document.getElementById('caption').innerHTML = sHTML1; bPageLoaded=true; } } function hideCalendar() { crossobj.visibility = 'hidden'; if (crossMonthObj != null) crossMonthObj.visibility = 'hidden'; if (crossYearObj != null) crossYearObj.visibility = 'hidden'; showElement('SELECT'); showElement('APPLET'); } function padZero(num) { return (num < 10) ? '0' + num : num; } function constructDate(d,m,y, t) { sTmp = dateFormat; sTmp = sTmp.replace ('dd','<e>'); sTmp = sTmp.replace ('d','<d>'); sTmp = sTmp.replace ('<e>',padZero(d)); sTmp = sTmp.replace ('<d>',d); sTmp = sTmp.replace ('mmmm','<p>'); sTmp = sTmp.replace ('mmm','<o>'); sTmp = sTmp.replace ('mm','<n>'); sTmp = sTmp.replace ('m','<m>'); sTmp = sTmp.replace ('<m>',m+1); sTmp = sTmp.replace ('<n>',padZero(m+1)); sTmp = sTmp.replace ('<o>',monthName[language][m]); sTmp = sTmp.replace ('<p>',monthName2[language][m]); sTmp = sTmp.replace ('yyyy',y); sTmp = sTmp.replace ('yy',padZero(y%100)); return sTmp.replace ('tt',t); } function closeCalendar() { var timed = new Date(); var tt = timed.getHours() + ":" + timed.getMinutes() + ":" +timed.getSeconds() + ""; //alert(typeof tt + "is type of dataeSelected"); //alert(tt +"is the return value"); hideCalendar(); ctlToPlaceValue.value = constructDate(dateSelected,monthSelected,yearSelected, tt ); } /*** Month Pulldown ***/ function StartDecMonth() { intervalID1 = setInterval("decMonth()",80); } function StartIncMonth() { intervalID1 = setInterval("incMonth()",80); } function incMonth () { monthSelected++; if (monthSelected > 11) { monthSelected = 0; yearSelected++; } constructCalendar(); } function decMonth () { monthSelected--; if (monthSelected < 0) { monthSelected = 11; yearSelected--; } constructCalendar(); } function constructMonth() { popDownYear() if (!monthConstructed) { sHTML = ""; for (i=0; i<12; i++) { sName = monthName[language][i]; if (i == monthSelected){ sName = '<b>' + sName + '</b>'; } sHTML += '<tr><td id="m' + i + '" style="cursor:pointer" onclick="monthConstructed=false;monthSelected=' + i + ';constructCalendar();popDownMonth();event.cancelBubble=true"><font color="#000066"> ' + sName + ' </font></td></tr>'; } document.getElementById('selectMonth').innerHTML = '<table width="70" style="font-family:ms shell dlg;font-size:12px;border:1px solid #a0a0a0;" bgcolor="#f0f0f0" cellspacing="0" >' + sHTML + '</table>'; monthConstructed = true; } } function popUpMonth() { if (visMonth == 1) { popDownMonth(); visMonth--; } else { constructMonth(); crossMonthObj.visibility = (dom||ie) ? 'visible' : 'show'; crossMonthObj.left = parseInt(crossobj.left) + 50; crossMonthObj.top = parseInt(crossobj.top) + 26; hideElement('SELECT', document.getElementById('selectMonth')); hideElement('APPLET', document.getElementById('selectMonth')); visMonth++; } } function popDownMonth() { crossMonthObj.visibility = 'hidden'; visMonth = 0; } /*** Year Pulldown ***/ function incYear() { for (i=0; i<7; i++) { newYear = (i + nStartingYear) + 1; if (newYear == yearSelected) txtYear = '<span style="color:#006;font-weight:bold;"> ' + newYear + ' </span>'; else txtYear = '<span style="color:#006;"> ' + newYear + ' </span>'; document.getElementById('y'+i).innerHTML = txtYear; } nStartingYear++; bShow=true; } function decYear() { for (i=0; i<7; i++) { newYear = (i + nStartingYear) - 1; if (newYear == yearSelected) txtYear = '<span style="color:#006;font-weight:bold"> ' + newYear + ' </span>'; else txtYear = '<span style="color:#006;"> ' + newYear + ' </span>'; document.getElementById('y'+i).innerHTML = txtYear; } nStartingYear--; bShow=true; } function selectYear(nYear) { yearSelected = parseInt(nYear + nStartingYear); yearConstructed = false;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -