📄 calendar.js
字号:
var tDate=new Date()
var tYear=tDate.getFullYear();
var tMon=tDate.getMonth()+1;
var tDay=tDate.getDay()
var ttoDay=tDate.getDate()
var strbefore='<table width="16" border="0" cellspacing="0" cellpadding="0" onMouseDown="this.className=\'down\'" onMouseUp="this.className=\'over\'" height="13" onClick=addOminuMonth("minu") class=over title="上一月" bgColor="#dddddd"> <tr align="center" style="cursor:hand"> <td><p style="margin-top: -6"><font style=\'font-family:Webdings;font-size:11px\'>3</font></p></td> </tr> </table>';
var strafter='<table width="16" border="0" cellspacing="0" cellpadding="0" onMouseDown="this.className=\'down\'" onMouseUp="this.className=\'over\'" height="13" class=over onClick=addOminuMonth("add") title="下一月" bgColor="#dddddd"> <tr align="center" style="cursor:hand"> <td><p style="margin-top: -6"><font style=\'font-family: Webdings;font-size: 11px\' >4</font></p></td> </tr> </table>'
var sWeek=new Array()
sWeek[0]=new Array('日','一','二','三','四','五','六')
sWeek[1]=new Array('星期日','星期一','星期二','星期三','星期四','星期五','星期六')
var sourceYear = tYear;
var sourceMon = tMon;
function addOminuMonth(addOminu)
{
event.cancelBubble=true;
if(addOminu== "add")
{
if(parseInt(tMon)+1==13)
{
tMon=1;
tYear=parseInt(tYear)==2099 ? 1900 :parseInt(tYear)+1
}
else
tMon=parseInt(tMon)+1
}
else if(addOminu== "minu")
{
tMon=parseInt(tMon)-1
if(tMon==0)
{
tMon=12;
tYear=parseInt(tYear)==1900? 2099 : parseInt(tYear)-1
}
}
delCalBodyTable()
calWriteDate()
}
function delCalBodyTable()
{
var rowN=calbodyTb.rows.length
for(var i=0;i<rowN;i++)
calbodyTb.deleteRow()
}
function calWriteDate()
{
xYear=tYear,xMon=tMon;
var calday=new Date(xYear,xMon,0).getDate();
var calwee=new Date(xYear,xMon-1,1).getDay();
wrday=1
for(var j=0;j<(Math.floor((calday+calwee-1)/7)+2);j++)
{
var tRow=calbodyTb.insertRow();
if(j==0)
tRow.setAttribute("bgColor","#dddddd")
for(var i=0;i<7;i++)
{
tCell=tRow.insertCell();
tCell.className ="calcomTd";
if(wrday==ttoDay && xYear==sourceYear && xMon ==sourceMon)
tCell.setAttribute("bgColor","#ffcc00")
if(j==0)
tCell.innerHTML=sWeek[0][i];
if(j==1 && i>=calwee || j>1 && calday >=wrday)
{
tCell.innerHTML=wrday
tCell.onclick = new Function('getcalvalue('+xYear+','+xMon+','+wrday+','+i+')')
tCell.onmouseover = new Function("this.className = 'caloverTd'");
tCell.onmouseout = new Function("this.className = 'calcomTd'");
tCell.title = xYear+"-"+xMon+"-"+wrday
wrday++
}
else if(j!=0)
{
tCell.onmouseover = new Function('this.style.cursor="default"')
tCell.onclick = new Function('timeDateTableDiv.style.display="none";showDateObject.value=""')
tCell.title = "关闭日历"
}
}
}
if(!document.all("selYearObj"))
{
selMonOYear(element.document.all("selYearObj"),tYear)
selMonOYear(element.document.all("selMonObj"),tMon)
}
else
{
selMonOYear(document.all("selYearObj"),tYear)
selMonOYear(document.all("selMonObj"),tMon)
}
}
function selMonOYear(getObj,getValue)
{
for(var n=0;n<getObj.length;n++)
{
if(getObj.options[n].value==getValue)
getObj[n].selected=true
}
}
function getcalvalue(iYear,iMon,iday,iweek)
{
iMon = parseInt(iMon)>9 ? iMon : "0"+iMon
iday = parseInt(iday)>9 ? iday : "0"+iday
strcaldate=iYear+"-"+iMon+"-"+iday
showDateObject.value = strcaldate
}
function showDateDiv()
{
timeDateTableDiv.style.display = "";
changeDivPosiCal(timeDateTableDiv,event.x,event.y,dateDivAppendObj)
showDateObject = event.srcElement;
}
function settime()
{
if(typeof(timeDateTableDiv)!="object")
createDateDiv(document.body)
event.cancelBubble=true;
showDateDiv();
}
function createDateDiv(appendO)
{
timeDateTableDiv = document.createElement('<div id="dateMenuDiv" style="display:none;position:absolute;background-color:#000000;border: \'1 solid\'; border-left-color: #eeeeee; border-top-color: #eeeeee; border-bottom-color: #505050; border-right-color: #505050;width:200; height:0px;left: 0px; top: 0px;z-index:8;" unselectable="On" align="center" ></div>' )
appendO.insertAdjacentElement("afterBegin",timeDateTableDiv)
dateDivAppendObj = appendO
timeDateTableDiv.oncontextmenu= new Function("return false;")
dateTb = document.createElement('<table width="100%" cellspacing="0" cellpadding="0" style="border-collapse:collapse"align="center" bgColor="#ffffff" border=1></table>')
timeDateTableDiv.appendChild(dateTb)
dateTrHead = dateTb.insertRow()
dateTdHead = dateTrHead.insertCell()
writecalHead(dateTdHead)
dateTrBody = dateTb.insertRow()
dateTdBody = dateTrBody.insertCell()
///dateTdBody.height=100;
//dateTdBody.valign= "top";
writecalBody(dateTdBody)
dragDivMoveCal(timeDateTableDiv,appendO,calheadTableTitle)
document.body.onclick = new Function('timeDateTableDiv.style.display="none"')
}
function writecalHead(appendO)
{
var strhead=document.createElement('<table id="calheadTableTitle" width="100%" cellspacing="0" cellpadding="0" align="center" class="queryTable"></table>')
appendO.appendChild(strhead)
var headrow=strhead.insertRow()
headrow.height=25
for(var i=0;i<3;i++)
{
headcell=headrow.insertCell()
headcell.align="center"
if(i==0)
{
headcell.innerHTML=strbefore
headcell.width="24"
}
if(i==1)
showSelCalMon(headcell)
if(i==2)
{
headcell.innerHTML=strafter
headcell.width="24"
}
}
}
function writecalBody(appendO)
{
calbodyTb=document.createElement('<table id="calbodyTable" width="100%" cellspacing="0" cellpadding="0" align="center"></table>')
appendO.appendChild(calbodyTb)
calWriteDate()
}
function createSel(formV,toV,yearOmon)
{
var selSstr
if(yearOmon == 'year')
selSstr ='<select id=selYearObj onChange=selectYearOMon(this,"'+yearOmon+'") onclick="selCancelBubble()" style="width:60;position:absolute;clip:rect(1 43 20 1);top:0;background-color:#336699">'
else
selSstr='<select id=selMonObj onChange=selectYearOMon(this,"'+yearOmon+'") onclick="selCancelBubble()" style="width:50;position:absolute;clip:rect(1 33 20 1);top:0;background-color:#336699">'
for( m=formV;m<toV;m++)
selSstr +='<option value='+ m + ' style="color:#000000;background-color:#eeeeee">'+m+ '</option>'
selSstr+='</select>';
return selSstr;
}
function selCancelBubble()
{
event.cancelBubble=true;
}
function showSelCalMon(appendO)
{
var tbStr = '<table align=center height=20 cellspacing="0" cellpadding="0" ><tr>'
+'<td width=40 style="position:relative;">'
+ createSel(1900,2100,'year')
+'</td><td width=30 align="center" style="color:#ffffff"> 年 </td>'
+'<td width=30 style="position:relative;">'
+ createSel(1,13,'month')
+'</td><td width=30 align="center" style="color:#ffffff"> 月 </td>';
appendO.innerHTML = tbStr
}
function selectYearOMon(getObj,yearOmon)
{
if(yearOmon == "year")
tYear=getObj.options[getObj.selectedIndex].value;
else if(yearOmon == "month")
tMon=getObj.options[getObj.selectedIndex].value;
delCalBodyTable()
calWriteDate()
}
function dragDivMoveCal(divObj,appendObj,eventObj)
{
eventObj.onclick = new Function("event.cancelBubble=true;")
var dragapproved=false;
var x=y=0;
eventObj.onmousedown = function()
{
if(event.button != 1)
return false
dragapproved=true;
x=event.x;
y=event.y;
eventObj.onmousemove=function()
{
if(event.button==1 && dragapproved)
{
var sx=divObj.style.posLeft+event.x-x;
var sy=divObj.style.posTop +event.y-y;
x=event.x;
y=event.y;
changeDivPosiCal(divObj,sx,sy,appendObj)
}
eventObj.style.cursor="move"
return false
}
}
}
function changeDivPosiCal(divO,posiX,posiY,appendO)
{
bodyH = appendO.offsetHeight + parseInt(document.body.scrollTop)
bodyW = appendO.offsetWidth + parseInt(document.body.scrollLeft)
if(posiX<0)
divO.style.posLeft = 0
else if(posiX+divO.offsetWidth<bodyW)
{
divO.style.posLeft = posiX+ parseInt(document.body.scrollLeft)
}
else
divO.style.posLeft = appendO.offsetWidth-divO.offsetWidth
if(posiY<0)
divO.style.posTop = 0
else if(posiY+divO.offsetHeight<bodyH)
{
divO.style.posTop = posiY+ parseInt(document.body.scrollTop);
}
else
divO.style.posTop = bodyH-divO.offsetHeight
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -