📄 jscalendar.js
字号:
for(; i < 7; i++){
dCurDate = d++;
_td = _cldTabFrm.rows(iRow).cells(i);
_td.disabled = false;
_td.className = "normal";
_td.name = "CURRENTMONTH";
_td.style.backgroundColor = "transparent";
_td.style.border = "0px solid";
if(i == 0 || i == 6) _td.className = "tdHoliday";
if(d - 1 > _monthDays[_dCurMonth]){
dCurDate = dNextMonthDate++;
//_td.disabled = true;
_td.className = "nextMonth";
_td.name = "NEXTMONTH";
}
//if(dCurDate < 10) dCurDate = "0" + dCurDate;
_td.innerHTML = dCurDate;
if(dCurDate == _dCurDate && _td.name == "CURRENTMONTH"){
//_cldTabFrm.rows(iRow).cells(i).style.backgroundColor = "620662";
//_cldTabFrm.rows(iRow).cells(i).background = "bgCurDate.gif";
_cldTabFrm.rows(iRow).cells(i).className = "tdCurDate";
}
if(dCurDate == _dftD.getDate()
&& _dCurMonth == _dftD.getMonth()
&& _dCurYear == _dftD.getFullYear()
&& _td.name == "CURRENTMONTH"){
_cldTabFrm.rows(iRow).cells(i).className = "tdToday";
if(dCurDate == _dCurDate)
_cldTabFrm.rows(iRow).cells(i).className = "tdTodayCurDate";
}
if(dCurDate == _dftD.getDate() && dCurDate == _dCurDate && _td.name == "CURRENTMONTH"){
//_td.style.backgroundColor = "#663366";
//_td.style.border = "1px solid gray";
//_cldTabFrm.rows(iRow).cells(i).className = "tdTodayCurDate";
}
}
i = 0;
iRow++;
}
}
function placeCldTabFrm(){
var _rect = this._rltvO.getBoundingClientRect();
var _bodyWidth = document.body.clientWidth;
var _bodyHeight = document.body.clientHeight;
var _tmp = _cldTabIFrame;
//alert(_bodyHeight);
_cldTabIFrame = _cldTabIFrame2;
var _innerTabFrmRect = _cldTabFrm.getBoundingClientRect();
//_debug(_innerTabFrmRect.right + "," + _innerTabFrmRect.left)
_cldTabIFrame2.style.pixelWidth = /*_innerTabFrmRect.right - _innerTabFrmRect.left*/ 220 + (_bBrowserVer55 ? 0 : _nShadowLength);
_cldTabIFrame2.style.pixelHeight = /*_innerTabFrmRect.bottom - _innerTabFrmRect.top*/ 165+ (_bBrowserVer55 ? 0 : _nShadowLength);
_cldTabIFrame.style.pixelLeft = _rect.left - 2 + document.body.scrollLeft;
_cldTabIFrame.style.pixelTop = _rect.bottom - 2 + document.body.scrollTop;
var _cldTabFrmRect = _cldTabIFrame.getBoundingClientRect();
if(_cldTabFrmRect.right > _bodyWidth){
_cldTabIFrame.style.pixelLeft -= (_cldTabFrmRect.right - _bodyWidth + _nShadowLength);
}
if(_cldTabFrmRect.bottom > _bodyHeight){
//alert("dd");
_cldTabIFrame.style.pixelTop = _rect.top - _nShadowLength;
_cldTabIFrame.style.pixelTop -= (_cldTabFrmRect.bottom - _cldTabFrmRect.top - document.body.scrollTop);
}
//alert(_cldTabIFrame.style.pixelWidth);
_cldTabIFrame = _tmp;
//if(
}
function whenMouseOverCldTabFrm(){
_bCanHide = false;
}
function whenMouseOutCldTabFrm(){
_bCanHide = true;
}
function getNextDate(year, month, date){
if(date == null) date = 1;
if(date > _monthDays[month + 1]) date = _monthDays[month + 1];
return new Date(year, month + 1, date);
}
function getLastDate(year, month, date){
if(date == null) date = 1;
if(date > _monthDays[month - 1]) date = _monthDays[month - 1];
return new Date(year, month - 1, date);
}
function switchLastMonth(bLast){
if(bLast == null) bLast = true;
var _tmpdate = null;
_tmpdate = bLast ? getLastDate(_dCurYear, _dCurMonth, _dCurDate) : getNextDate(_dCurYear, _dCurMonth, _dCurDate);
//_curCldTabRltvObj.value = _tmpdate.getFullYear() + "-" + (_tmpdate.getMonth() + 1) + "-" + _tmpdate.getDate();
setTargetFormaValue(_tmpdate.getFullYear(), _tmpdate.getMonth() + 1, _tmpdate.getDate());
_bHaveUpdated = false;
//JSCalendar(_curCldTabRltvObj);
fillCldTabFrm(_tmpdate.getFullYear(), _tmpdate.getMonth(), _tmpdate.getDate());;
}
function switchNextMonth(){
switchLastMonth(false);
}
function switchLastYear(){
//_curCldTabRltvObj.value = (_dCurYear * 1 + 1) + "-" + (_dCurMonth + 1) + "-" + _dCurDate;
setTargetFormaValue(_dCurYear * 1 + 1, _dCurMonth * 1 + 1, _dCurDate);
_bHaveUpdated = false;
//JSCalendar(_curCldTabRltvObj);
fillCldTabFrm(_dCurYear * 1 + 1, _dCurMonth * 1, _dCurDate);
}
function switchNextYear(){
//_curCldTabRltvObj.value = (_dCurYear - 1) + "-" + (_dCurMonth + 1) + "-" + _dCurDate;
setTargetFormaValue(_dCurYear * 1 - 1, _dCurMonth * 1 + 1, _dCurDate);
_bHaveUpdated = false;
//JSCalendar(_curCldTabRltvObj);
fillCldTabFrm(_dCurYear * 1 - 1, _dCurMonth * 1, _dCurDate);
}
function whenMouseOverDateItem(){
var e = _cldTabIFrame.event.srcElement;
var _tmpdate = null;
if(e.tagName == "TD"){
if(e.name == "LASTMONTH"){
_tmpdate = getLastDate(_dCurYear, _dCurMonth);
e.title = "Last : " + _tmpdate.getFullYear() + "-" + (_tmpdate.getMonth() + 1) + "-" + e.innerText;
return;
}
if(e.name == "NEXTMONTH"){
_tmpdate = getNextDate(_dCurYear, _dCurMonth);
e.title = "Next : " + _tmpdate.getFullYear() + "-" + (_tmpdate.getMonth() + 1) + "-" + e.innerText;
return;
}
var sCurDate = _dCurYear + "-" + (_dCurMonth + 1) + "-" + e.innerText;
e.title = "当前日期 : " + sCurDate;
e.style.backgroundColor = "#EFEFEF";
/*去除onmouseover事件对text的负值 王勇*/
//setTargetFormaValue(_dCurYear, _dCurMonth + 1, e.innerText);
}
}
function resetTargetValue(){
//_curCldTabRltvObj.value = ;
_bHaveSelectNewValue = true;
hideCldTabFrm();
}
function setTargetFormaValue(year, month, date){
var _year, _month, _date;
_year = year;
_month = month * 1;
_date = date * 1;
if(_month < 10) _month = "0" + _month;
if(_date < 10) _date = "0" + _date;
_curCldTabRltvObj.value = _year + "-" + _month + "-" + _date;
}
function whenMouseOutDateItem(){
var e = _cldTabIFrame.event.srcElement;
if(e.tagName == "TD")
e.style.backgroundColor = "";
}
function whenClickDateItem(){
var e = _cldTabIFrame.event.srcElement;
var _tmpdate = null;
var _month = null;
var _date = null;
if(e.tagName == "TD"){
_bHaveUpdated = false;
if(e.name == "LASTMONTH"){
_tmpdate = getLastDate(_dCurYear, _dCurMonth);
setTargetFormaValue(_tmpdate.getFullYear(), _tmpdate.getMonth() + 1, e.innerText);
fillCldTabFrm(_tmpdate.getFullYear(), _tmpdate.getMonth(), e.innerText);
/* new */ //JSCalendar(_curCldTabRltvObj);
return;
}
if(e.name == "NEXTMONTH"){
_tmpdate = getNextDate(_dCurYear, _dCurMonth);
setTargetFormaValue(_tmpdate.getFullYear(), _tmpdate.getMonth() + 1, e.innerText);
/* new */ //JSCalendar(_curCldTabRltvObj);
fillCldTabFrm(_tmpdate.getFullYear(), _tmpdate.getMonth(), e.innerText);
return;
}
/*对text的负值加入到onclick事件中 王勇*/
setTargetFormaValue(_dCurYear, _dCurMonth + 1, e.innerText);
_bHaveSelectNewValue = true;
hideCldTabFrm();
}
}
function hideCldTabFrm(){
//try{
if(!_bHaveSelectNewValue)
if(_cldTabIFrame == null || !_bCanHide) return;
//alert(_cldTabIFrame);
var oFiredObj = null;
try{
oFiredObj = event.srcElement;
}catch(e){
oFiredObj = _cldTabIFrame.event.srcElement;
}
if(oFiredObj == _curCldTabRltvObj) return;
//alert(_curCldTabRltvObj);//
_cldTabIFrame2.style.display = "none";
_bHaveUpdated = false;
_bHaveShown = false;
removeShadowDiv();
//alert(_bHaveSelectNewValue);
if(!_bHaveSelectNewValue)
_curCldTabRltvObj.value = _curCldTabRltvObjValue;
//}catch(e){_debug(e.description);}
}
function removeShadowDiv(){
try{
var arrShadowDiv = eval("window.document.arr" + _cldTabFrm.id);
for(var i = 0; i < arrShadowDiv.length; i++)
arrShadowDiv[i].removeNode(true);
}catch(e){_debug(e.description);}
}
function getValidateDate(sDate){
if(sDate == null) return new Date();
if(sDate.indexOf("-") == -1){
if(isNaN(sDate)) return new Date();
if(sDate * 1 > 9999 || sDate * 1 < 1000) return new Date();
return new Date(sDate, 0, 1);
}
var tmp = sDate.split("-");
if(isNaN(tmp[0]) || isNaN(tmp[1]) || isNaN(tmp[2])
|| tmp[0] > 9999 || tmp[0] < 1000
|| tmp[1] > 12 || tmp[1] < 1
|| tmp[2] > 31 || tmp[2] < 1)
return new Date();
return new Date(tmp[0], tmp[1] - 1, tmp[2]);
}
//var tst = getValidateDate("2000-7-310");
//alert(tst.getFullYear() + "-" + (tst.getMonth() + 1) + "-" + tst.getDate());
function createDateBox(sBoxName, sDfltValue){
var _d = getValidateDate(sDfltValue);
var _month = _d.getMonth() + 1;
var _date = _d.getDate();
if(_month * 1 < 10) _month = "0" + _month;
if(_date * 1 < 10) _date = "0" + _date;
sDfltValue = _d.getFullYear() + "-" + _month + "-" + _date;
var _str = "<INPUT READONLY STYLE='border:1px solid gray;text-align:center;cursor:default;' NAME='" + sBoxName + "' VALUE='" + sDfltValue + "' ONCLICK=JSCalendar(this)>";
document.write(_str);
}
function MakeDivShadowEffect(divObj, color, nLength)
{
//alert(divObj);
var tmpstr = "window.document.arr" + divObj.id + " = new Array();";
eval(tmpstr);
//alert( tmpstr );
var arrShadowDiv = eval("window.document.arr" + divObj.id);
//window.document.arrJACKSHANGJIELOVEFEIFEI = new Array();
//var arrShadowDiv = window.document.arrJACKSHANGJIELOVEFEIFEI;
//alert(arrShadowDiv.length);
var _rect = divObj.getBoundingClientRect();
for( i = nLength; i > 0; i --)
{
var rect = _cldTabIFrame.document.createElement( "DIV" );
rect.style.position = "absolute";
rect.style.left = (divObj.style.posLeft + i ) + "px";
rect.style.top = (divObj.style.posTop + i ) + "px";
rect.style.width = divObj.offsetWidth + "px";
rect.style.height = divObj.offsetHeight + "px";
rect.style.backgroundColor = color;
var opacity = 1 - i / (i + 1);
//alert(rect.style.width);
rect.style.filter = 'alpha(opacity=' + (100 * opacity) + ')';
rect.style.zIndex = divObj.style.zIndex - 1;
//alert(divObj.tagName);
//divObj.insertAdjacentElement("beforeEnd", rect);
_cldTabIFrame.document.body.insertBefore(rect);
arrShadowDiv[arrShadowDiv.length] = rect;
//alert( i );
}
}
function _debug(s){
return;
//var o = new Option(s, s);
//_debugLst.add(o);
form1._debugLst.options[form1._debugLst.length] = new Option(s, s, 0, 0);
form1._debugLst.options[form1._debugLst.length - 1].selected = true;
//_debugLst.item(_debugLst.length - 1).selected = true;
}
document.onclick = hideCldTabFrm;
//createCldTabFrm();
//-->
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -