📄 utility.js
字号:
var Browser = new Object();
Browser.isMozilla = (typeof document.implementation != 'undefined') && (typeof document.implementation.createDocument != 'undefined') && (typeof HTMLDocument!='undefined');
Browser.isIE = window.ActiveXObject ? true : false;
Browser.isFirefox = (navigator.userAgent.toLowerCase().indexOf('firefox')!=-1);
Browser.isOpera = (navigator.userAgent.toLowerCase().indexOf('opera')!=-1);
// 日历选择代码 ----------------------------------------------------------------
var date_start,date_end,g_object;
var today = new Date();
var separator = "-";
var inover = false;
var cele_date_div, cele_date_year,cele_date_month;
var cele_frm;
//mode :时间变换的类型0-年 1-月 2-直接选择月
function change_date(temp, mode)
{
var t_month,t_year;
if (mode)
{
if (mode==1)
t_month = parseInt(cele_date_month.value, 10)+parseInt(temp, 10);
else
t_month = parseInt(temp);
if (t_month<cele_date_month.options(0).text)
{
cele_date_month.value = cele_date_month.options(cele_date_month.length-1).text;
change_date(parseInt(cele_date_year.value,10)-1,0);
}
else
{
if (t_month>cele_date_month.options(cele_date_month.length-1).text)
{
cele_date_month.value = cele_date_month.options(0).text;
change_date(parseInt(cele_date_year.value, 10)+1, 0);
}
else
{
cele_date_month.value = t_month;
set_cele_date(cele_date_year.value, cele_date_month.value);
}
}
}
else
{
t_year = parseInt(temp, 10);
if (t_year<cele_date_year.options(0).text)
{
cele_date_year.value = cele_date_year.options(0).text;
set_cele_date(cele_date_year.value, 1);
}
else
{
if (parseInt(t_year, 10)>parseInt(cele_date_year.options(cele_date_year.length-1).text, 10))
{
cele_date_year.value = cele_date_year.options(cele_date_year.length-1).text;
set_cele_date(cele_date_year.value, 12);
}
else
{
cele_date_year.value = t_year;
set_cele_date(cele_date_year.value, cele_date_month.value);
}
}
}
cele_date_div.focus();
}
//初始化日历
function init(d_start, d_end)
{
if(Browser.isFirefox)return;
var temp_str;
var i = 0;
var j = 0;
date_start = new Date(1980,7,1);
date_end = new Date(2004,8,1);
document.write('<iframe id="cele_DivShim" name="cele_DivShim" src="" scrolling="no" frameborder="0" style="position:absolute;top:0px;left:0px;visibility:hidden;"></iframe>');
cele_frm = document.getElementById('cele_DivShim');
document.writeln('<div name="cele_date" id="cele_date" style="display:none" style="POSITION: absolute; Z-INDEX:999" onClick="event.cancelBubble=true;" onBlur="hilayer()" onMouseout="lostlayerfocus()">-</div>');
cele_date_div = document.getElementById('cele_date');
cele_date_div.innerHTML = '';
temp_str = '<table border="2" bgcolor="#DDDDDD" bordercolor="#6595D6" align=center width="190"><tr bgcolor="#FFFFFF"><td colspan=7 onmouseover="overcolor(this)">';
temp_str += '<input type="Button" value="<" onclick="change_date(-1,1)" onmouseover="getlayerfocus()" style="cursor:pointer;"> ';
temp_str += '';
temp_str += '<select name="cele_date_year" id="cele_date_year" language="javascript" onchange="change_date(this.value,0)" onmouseover="getlayerfocus()" onblur="getlayerfocus()" style="font-size: 9pt; border: 1px #666666 outset; background-color: #F4F8FB">';
// 增加年份选项
for (i=1900;i<=2020;i++)
temp_str += '<OPTION value="' + i.toString() + '">' + i.toString() + '</OPTION>';
temp_str += '</select>年 ';
temp_str += '';
temp_str += '<select name="cele_date_month" id="cele_date_month" language="javascript" onchange="change_date(this.value,2)" onmouseover="getlayerfocus()" onblur="getlayerfocus()" style="font-size: 9pt; border: 1px #666666 outset; background-color: #F4F8FB">';
// 增加月份选项
for (i=1;i<=12;i++)
temp_str += '<OPTION value="' + i.toString() + '">' + i.toString() + '</OPTION>';
temp_str += '"</select>月 ';
temp_str += '';
temp_str += '<input type="Button" value=">" onclick="change_date(1,1)" onmouseover="getlayerfocus()" style="cursor:pointer;">';
temp_str += '</td></tr><tr align="center"><td onmouseover="overcolor(this)">';
// 增加星期文字
temp_str += '<font color=red>日</font></td><td>一</td><td>二</td><td>三</td><td>四</td><td>五</td><td>六</td></tr>';
// 增加日期
for (i=1;i<=6;i++)
{
temp_str += '<tr align="center">';
for(j=1;j<=7;j++)
temp_str += '<td name="c'+i+'_'+j+'" id="c'+i+'_'+j+'" style="CURSOR:hand;COLOR:#000000;" language="javascript" onmouseover="overcolor(this)" onmouseout="outcolor(this)" onclick="td_click(this)">?</td>';
temp_str += '</tr>';
}
temp_str += '</td></tr></table>';
cele_date_div.innerHTML = temp_str;
cele_date_year = document.getElementById('cele_date_year');
cele_date_month= document.getElementById('cele_date_month');
}
function set_cele_date(year, month)
{
var i, j, p, k;
var nd = new Date(year, month-1, 1);
event.cancelBubble = true;
if(year<1900)
year = year + 1900;
cele_date_year.value = year;
cele_date_month.value = month;
k = nd.getDay()-1;
var temp;
for (i=1;i<=6;i++)
{
for(j=1;j<=7;j++)
{
eval('c'+i+'_'+j+'.innerHTML=""');
eval('c'+i+'_'+j+'.bgColor="#DDDDDD"');
eval('c'+i+'_'+j+'.style.cursor="hand"');
}
}
while(month-1==nd.getMonth())
{
j = (nd.getDay()+1);
p = parseInt((nd.getDate()+k) / 7)+1;
eval('c'+p+'_'+j+'.innerHTML='+'"'+nd.getDate()+'"');
if ((nd.getDate()==today.getDate()) && (cele_date_month.value==today.getMonth()+1) && (cele_date_year.value==today.getYear()))
eval('c'+p+'_'+j+'.bgColor="#EFFB64"');
if (nd>date_end || nd<date_start)
{
eval('c'+p+'_'+j+'.bgColor="#FF9999"');
eval('c'+p+'_'+j+'.style.cursor="text"');
}
nd=new Date(nd.valueOf() + 86400000);
}
}
//eP:点击的对象;d_start-d_end有效的时间区段;t_object:需要存放值的控件;dx,dy:偏移距离
function show_cele_date(eP, d_start, d_end, t_object, dx, dy)
{
if(Browser.isFirefox)return;
cele_date_div.style.display = "";
cele_date_div.style.zIndex = 99;
var s, cur_d;
var eT = eP.offsetTop;
var eH = eP.offsetHeight+eT;
var dH = cele_date_div.style.pixelHeight;
var sT = document.documentElement.scrollTop;
var sL = document.documentElement.scrollLeft;
event.cancelBubble = true;
if (dx==null) dx = 5;
if (dy==null) dy = 5;
cele_date_div.style.posLeft = event.clientX-event.offsetX+sL-dx;
cele_date_div.style.posTop = event.clientY-event.offsetY+eH+sT-dy;
if (cele_date_div.style.posLeft+cele_date_div.clientWidth>document.documentElement.clientWidth)
cele_date_div.style.posLeft += eP.offsetWidth - cele_date_div.clientWidth;
if (d_start!='')
{
if (d_start=="today")
date_start = new Date(today.getYear(), today.getMonth(), today.getDate());
else
{
s = d_start.split(separator);
date_start = new Date(s[0], s[1]-1, s[2]);
}
}
else
date_start = new Date(1900, 1, 1);
if (d_end!='')
{
s = d_end.split(separator);
date_end = new Date(s[0], s[1]-1, s[2]);
}
else
date_end = new Date(3000, 1, 1);
g_object = t_object;
s = eP.value;
if(s!=null && s!='')
{
s = s.split(separator);
if(s[0]>=1900 && s[0]<3000 && s[1]>0 && s[1]<13)
cur_d = new Date(s[0], s[1]-1, s[2]);
else
cur_d = new Date();
}
else
cur_d = new Date();
set_cele_date(cur_d.getYear(), cur_d.getMonth()+1);
cele_date_div.style.display = "block";
//cele_date_div.focus();
if(cele_frm!=null)
{
cele_frm.style.left = cele_date_div.style.left;
cele_frm.style.top = cele_date_div.style.top;
cele_frm.style.width = cele_date_div.clientWidth+2;
cele_frm.style.Height = cele_date_div.clientHeight+2;
cele_frm.style.visibility = 'visible';
}
}
function td_click(t_object)
{
var t_d;
if (parseInt(t_object.innerHTML,10)>=1 && parseInt(t_object.innerHTML,10)<=31)
{
t_d = new Date(cele_date_year.value, cele_date_month.value-1, t_object.innerHTML);
if (t_d<=date_end && t_d>=date_start)
{
var year = cele_date_year.value;
var month = cele_date_month.value;
var day = t_object.innerHTML;
if (parseInt(month)<10)
month = '0' + month;
if (parseInt(day)<10)
day = '0' + day;
g_object.value = year + separator + month + separator + day;
cele_date_div.style.display = 'none';
cele_frm.style.visibility = 'hidden';
}
}
}
function h_cele_date()
{
cele_date_div.style.display = 'none';
cele_frm.style.visibility = 'hidden';
}
function overcolor(obj)
{
if (obj.style.cursor=='hand' && obj.innerHTML!='')
{
obj.style.color = '#FFFFFF';
obj.style.backgroundColor = 'gray';
}
inover = true;
cele_date_div.focus();
}
function outcolor(obj)
{
obj.style.color = '';
obj.style.backgroundColor = '';
inover = false;
}
function getNow(o)
{
var Stamp = new Date();
var year = Stamp.getYear();
var month = Stamp.getMonth()+1;
var day = Stamp.getDate();
if(month<10)
month = '0' + month;
if(day<10)
day = '0' + day;
o.value = year + separator + month + separator + day;
}
function hilayer()
{
if (inover==false)
{
var lay = cele_date_div;
lay.style.display = 'none';
cele_frm.style.visibility = 'hidden';
}
}
function getlayerfocus()
{
inover=true;
}
function lostlayerfocus()
{
inover=false;
}
init();
// 日历结束 ----------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -