📄 澶嶄欢 jstime.jsp
字号:
<!--
<!--
/**
*
* JSCalendar
*
* Author :H.Z. Shang (Jack)
* Email :shhongzhang@cntomorrow.com
* Site :http://www.cntomorrow.com:3310
* Version :1.0.1
* Finished Date :2003-3-2
* Beijing Huasun Mingtian Tech. Co., Ltd.
* No CopyRight,Can be modified by you if you want improve it's function!!!!
* LET'S MAKE IT BETTER TOGETHER!
* HISTORY:
* 1. [2003-3-4 by Jack] 采用IFRAME修正了会被页面SELECT对象挡住的BUG!
* 2. [2003-3-4 by Jack] 增加了清空控件值的功能
* 3. [2003-3-5 by Jack] 修正了当用户翻年、翻月时原输入框值被覆盖的情况
* 4. [2003-3-5 by Jack] 通过使用DXImageTransform.Microsoft.Shadow来实现IFRAME的阴影效果
* 该滤镜只能在IE5.5下使用可加快程序运行速度,在IE5.0中还是使用原来的产生阴影的方法
* 5. [2003-3-6 by Jack] 增加了另外一种生成该控件的方法:<script>createDateBox("Name", "2003-3-6")</script>
* 其中第二个参数为可选参数
* 6. [2003-8-20 by GM ] 年使用 Select 方式选择,年范围(100年):当前年前60年,后40年
* 月使用 Select 方式选择
*/
var _lstFocus=null;
var _cldTabIFrame = null;
var _cldTabIFrame2 = null;
var _cldTabFrm = null;
var _cldMonthMenuFrm = null;
var _curCldTabRltvObj = null;
var _bCanHide = true;
var _bHaveUpdated = false;
var _bHaveShown = false;
var _bHaveSelectNewValue = false;
var _dCurYear = null;
var _dCurMonth = null;
var _dCurDate = null;
var _curCldTabRltvObjValue = "";
/**
* 在该日历控件中,我采用了给空间周围加上阴影层来增强控件的视觉感。
* _nShadowLength 变量设定了阴影层的长度,默认值为 4;
* 使用阴影层将相应的滞缓程序的运行速度,如果你想得到较快的运行速度,请将该值设为 0
*/
var _nShadowLength = 0;
/**
* _sNeededFilePath 变量设定了JSCalendar控件所需的所有文件的位置
* 当你将你的应用部署到应用服务器上后,你需要给改变量设定相应的值。
* 例如:
* _sNeededFilePath = "/MyWebAPP/comm/js/JSCalendar/";
*
* 该变量的值必须正确设置,否则程序在运行中可能出现错误!
*/
var _sNeededFilePath = "/hollyAgent_demo/framework/public/images/";
var _sBrowserVersion = navigator.appVersion.substring(navigator.appVersion.indexOf("MSIE") + 5,navigator.appVersion.indexOf("Windows") - 2);
var _bBrowserVer55 = _sBrowserVersion >= 5.5 ? true : false;
/**
* 定义所需图片
*
*/
var _imgReset1 = new Image();
_imgReset1.src = _sNeededFilePath + "reset1.gif";
var _imgReset2 = new Image();
_imgReset2.src = _sNeededFilePath + "reset2.gif";
var _imgBtnYear = new Image();
_imgBtnYear.src = _sNeededFilePath + "btnYears.gif";
var _imgBgToday1 = new Image();
_imgBgToday1.src = _sNeededFilePath + "bgToday1.gif";
var _imgbc = new Image();
_imgbc.src = _sNeededFilePath + "bc.gif";
var _imgqx = new Image();
_imgqx.src = _sNeededFilePath + "qx.gif";
var _monthDays = new Array(12);
_monthDays[ 0] = 31;
_monthDays[ 1] = 28;
_monthDays[ 2] = 31;
_monthDays[ 3] = 30;
_monthDays[ 4] = 31;
_monthDays[ 5] = 30;
_monthDays[ 6] = 31;
_monthDays[ 7] = 31;
_monthDays[ 8] = 30;
_monthDays[ 9] = 31;
_monthDays[10] = 30;
_monthDays[11] = 31;
var _weeks = new Array(7);
_weeks[0] = "日";
_weeks[1] = "一";
_weeks[2] = "二";
_weeks[3] = "三";
_weeks[4] = "四";
_weeks[5] = "五";
_weeks[6] = "六";
var _months = new Array(12);
_months[ 0] = "1";
_months[ 1] = "2";
_months[ 2] = "3";
_months[ 3] = "4";
_months[ 4] = "5";
_months[ 5] = "6";
_months[ 6] = "7";
_months[ 7] = "8";
_months[ 8] = "9";
_months[ 9] = "10";
_months[10] = "11";
_months[11] = "12";
var _dftD = new Date();
document.write("<IFRAME id=frm name=frm style='display:none'></IFRAME>");
function JSCalendar(rltvO, year, month, date){
// alert(rltvO.disabled);
if(_bHaveUpdated && rltvO == _curCldTabRltvObj) return;
if(rltvO.tagName != "INPUT"){("JSCalendar 1.0 alerts you:\n\n INPUT element(object) must be required!");return};
//hideCldTabFrm();
rltvO.readOnly = true;
rltvO.style.cursor = "default";
rltvO.style.textAlign = "center";
_curCldTabRltvObjValue = rltvO.value;
//alert(_curCldTabRltvObjValue);
_bHaveSelectNewValue = false;
//------------------------------------------------------------------------------
this.createCldTabFrm = createCldTabFrm;
this.fillCldTabFrm = fillCldTabFrm;
this.placeCldTabFrm = placeCldTabFrm;
//------------------------------------------------------------------------------
this._rltvO = (rltvO == null ? document.body : rltvO);
var _oldDate = rltvO.value;
var _oldDateType = "From Input!";
try{
if(_oldDate == "") throw "";
var d = _oldDate.split("-");
var _tmpDate = getValidateDate(_oldDate);
this._year = _tmpDate.getFullYear();
this._month = _tmpDate.getMonth();
this._date = _tmpDate.getDate();
}catch(e){
_debug("Error was be catched:" + e.description);
_oldDateType = "From default or current date!";
this._year = ((year == null || year=="") ? _dftD.getFullYear() : year);
this._month = (month == null ? _dftD.getMonth() : month - 1);;
this._date = (date == null ? _dftD.getDate() : date);
}
//alert(this._year + "-" + (this._month + 1) + "-" + this._date );
_dCurYear = this._year;
_dCurMonth = this._month;
_dCurDate = this._date;
if(_cldTabIFrame == null)
this.createCldTabFrm();
//alert(_cldTabIFrame2)
_cldTabIFrame2.style.display = "inline";
_debug(_oldDateType + "[]" + this._year + "-" + (this._month + 1) + "-" + this._date);
this.fillCldTabFrm(this._year, this._month, this._date);
if(!_bHaveShown || rltvO != _curCldTabRltvObj) this.placeCldTabFrm();
//_cldTabIFrame2.style.display = "inline";
if(!_bBrowserVer55){
removeShadowDiv();
MakeDivShadowEffect(_cldTabFrm, '#aaaaaa', _nShadowLength);
}
_curCldTabRltvObj = this._rltvO;
_bHaveUpdated = true;
_bHaveShown = true;
}
function createCldTabFrm(){
var _sz = "<HTML>"
+ "<HEAD><link href='" +_sNeededFilePath + "JSCalendar.css' rel=stylesheet type='text/css'></HEAD>"
+ "<BODY onselectstart='return false;' leftmargin=0 topmargin=0 rightmargin=0 bottommargin=0 style='cursor:default;background-color:transparent;border:0px solid black;scroll:no'><center></center>"
+ "</BODY></HTML>";
_cldTabIFrame = frm;//document.all("frm");//document.createElement("IFRAME");
_cldTabIFrame2 = document.all("frm");
_cldTabIFrame2.style.position = "absolute";
//_cldTabIFrame.disabled = true;
//_cldTabIFrame2.document.body.scroll = "no";
//_cldTabIFrame2.style.pixelWidth = /*_innerTabFrmRect.right - _innerTabFrmRect.left*/ 375 + _nShadowLength;
//_cldTabIFrame2.style.pixelHeight = /*_innerTabFrmRect.bottom - _innerTabFrmRect.top*/ 165 + _nShadowLength;
//_cldTabIFrame2.allowTransparency = true;
//if(_bBrowserVer55){
// _cldTabIFrame2.style.filter = "progid:DXImageTransform.Microsoft.Shadow(direction=135,color=#aaaaaa,strength=" + _nShadowLength + ")";
//}
_cldTabIFrame.document.open("text/html","replace");
_cldTabIFrame.document.write(_sz);
_cldTabIFrame.document.close();
_cldTabFrm = _cldTabIFrame.document.createElement("TABLE");
_cldTabFrm.id = "JACKSHANGJIELOVEFEIFEI"
_cldTabFrm.style.position = "absolute";
_cldTabFrm.className = "calendar";
_cldTabFrm.border = 0;
//_cldTabFrm.height = 165;
_cldTabFrm.style.pixelWidth = 250;
_cldTabFrm.cellSpacing = 1;
_cldTabFrm.cellPadding = 1;
_cldTabFrm.bgColor = "ffffff";
_cldTabFrm.attachEvent("onmouseover", whenMouseOverCldTabFrm);
_cldTabFrm.attachEvent("onmouseout", whenMouseOutCldTabFrm);
// Create Calendar Control header
var _TR = _cldTabFrm.insertRow();
var _TD = _TR.insertCell();
_TD.colSpan = 7;
_TD.align = "center";
_TD.innerHTML = " ";//"<b>JS Calendar 1.0 by Jack</b>";
// Create main block
for(var i = 0; i < 7; i++){
_TR = _cldTabFrm.insertRow();
for(var j = 0; j < 7; j++){
_TD = _TR.insertCell();
_TD.style.cursor = "default";
_TD.align = "center";
_TD.width = 10;
//_TD.style.border = "1px solid black";
_TD.innerHTML = "*";
if(i != 0){
_TD.style.cursor = "hand";
_TD.attachEvent("onclick", whenMouseOverDateItem);
//_TD.attachEvent("onmouseout", whenMouseOutDateItem);
_TD.attachEvent("onclick", whenClickDateItem);
}
if(i == 0) _TD.innerHTML = "<b>" + _weeks[j] + "</b>";
if(i == 0 && (j == 0 || j == 6)) _TD.className = "tdHoliday";
//if(i == 0 && j == 6) _TD.className = "tdHoliday";
//if(i == 0 && j == 6) _TD.className = "tdSat";
}
}
// Create footer
_TR = _cldTabFrm.insertRow(2);
_TD = _TR.insertCell();
_TD.colSpan = 7;
_TD.height = 1;
_TD.bgColor = "black";
_TR = _cldTabFrm.insertRow();
_TD = _TR.insertCell();
_TD.colSpan = 7;
_TD.innerHTML = "<table cellspacing=0 cellpadding=0 class=calendar style='border:0px solid;width:100%'>"
+ "<tr><td title= '今天日期'style='cursor:hand'onclick=\"parent._bHaveSelectNewValue=true;parent.setTargetFormaValue(" + _dftD.getFullYear() + "," + (_dftD.getMonth() + 1) + "," + _dftD.getDate() + ");parent.hideCldTabFrm();return;parent.fillCldTabFrm(" + _dftD.getFullYear() + "," + _dftD.getMonth() + "," + _dftD.getDate() + ");\">"
+ "<b> <img src='" + _imgBgToday1.src + "' width=30px>今天 : " + _dftD.getFullYear() + "-" + (_dftD.getMonth() + 1) + "-" + _dftD.getDate()
+ "</td>"
+ "</tr></table>"
_cldTabIFrame.document.body.insertBefore(_cldTabFrm);
//_cldTabFrm.disabled = _curCldTabRltvObj.disabled;
}
function fillCldTabFrm(year, month, date){
//return;
var dCurDate = 0;
var dNextMonthDate = 1;
var iDateStartRow = 3;
//var _d = new Date(this._year, this._month, 1);
var _d = new Date(year, month, 1);
var _day = _d.getDay();
var _td = null;
_dCurYear = year;
_dCurMonth = month;
_dCurDate = date;
if (((_dCurYear % 4 == 0) && !(_dCurYear % 100 == 0))
||(_dCurYear % 400 == 0)) _monthDays[1] = 29;
else _monthDays[1] = 28;
// 年列表 -------- GM
var _sYearList = "<select name='_JSCYear' onchange='parent.setYearValue(this.value)' style='width:55;height:16;font-size:9pt'>"
var _targetYear = parseInt(_dCurYear) + 40
for( i=_dCurYear-60; i<_targetYear; i++){
if(i == _dCurYear)
_sYearList += "<option value="+ i +" selected>" + i + "</option>"
else
_sYearList += "<option value="+ i +">" + i + "</option>"
}
_sYearList += "</select>"
var _sMonthList = "<select name='_JSCMonth' onchange='parent.setMonthValue(this.value)' style='width:55;height:16;font-size:9pt'>"
for( i=0; i<12; i++){
if(i == _dCurMonth){
_sMonthList += "<option value="+ i +" selected>"+ (i+1) +"</option>";
}else{
_sMonthList += "<option value="+ i +" >"+ (i+1) +"</option>";
}
}
_sMonthList += "</select>"
//_months[_dCurMonth]
_cldTabFrm.rows(0).cells(0).innerHTML
= "<table bgcolor=E3E7FF class=calendar style=\"color:white;font-weight:bolder;border:0px solid;width:100%;height:20px;\" cellspacing=0 cellpadding=0>"
+ "<tr><td>"
+ "</td>"
+ "<td align=center vAlign=middle>"
+ "" + _sYearList + " " + _sMonthList
+ "</td>"
+ "<td align=right>"
+ "</td></tr></table>"
//+ "<map name=mapForBtnYears><area title='上一年' onclick=parent.switchNextYear() shape=rect coords=0,0,10,5><area title='下一年' onclick=parent.switchLastYear() shape=rect coords=0,5,10,15></map>"
//+ " <img border=0 align=absMiddle src='" + _imgBtnYear.src + "' style='height:12px;width:10px' usemap=#mapForBtnYears> "
//+ " <a style='cursor:hand' title='上一月' onclick=\"parent.switchLastMonth()\"><<</a>"
//+ "<a style='cursor:hand' title='下一月' onclick=\"parent.switchNextMonth()\">>></a> "
_day = (_day == 0 ? 7 : _day);
for(var i = _day - 1, dlt = 0; i >= 0; i--){
_td = _cldTabFrm.rows(iDateStartRow).cells(i);
//_td.disabled = true;
_td.className = "lastMonth";
_td.title = "";
_td.name = "LASTMONTH";
_td.style.backgroundColor = "transparent";
_td.style.border = "0px solid";
var _nextMonth = _dCurMonth - 1;
if(_nextMonth < 0) _nextMonth = 11;
_td.innerText = (_monthDays[_nextMonth] - (dlt++));
}
//alert(_cldTabFrm.rows.length);
i = _day;
for(var d = 1, iRow = iDateStartRow; d <= _monthDays[_dCurMonth] || iRow < 9; ){
for(; i < 7; i++){
dCurDate = d++;
_td = _cldTabFrm.rows(iRow).cells(i);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -