JS日历 推荐


Posted in Javascript onDecember 03, 2006

两年前写过一个日历,可是兼容性不好. 这次重新写了一次. 
兼容多种浏览器 
了解了不少东东,特别是对于W3C标准化. 
如 FF和IE 对box模型的理解不同 
box.style{width:100;border 1px;} 
ie理解 为 box.width = 100 
ff 理解 为 box.width = 100 + 1*2 = 102 
可以使用这种方法使两种浏览器都可以正常浏览 
box.style{width:100!important; width /**/:120px;border 1px;} 
注意 width(空格)/**/
JS日历 推荐下载此文件

/***********************  * 创建对象  var c = new Calendar("c"); document.write(c);  
* 调用方法 c.show(arg1,arg2,arg3)  
* 参数1: 文本输入框(必填). 如 onfocus="c.show(this)";  
* 参数2: 按钮或其它可用单击事件的HTML元素(如果使用按钮方式则必填).  
     如 onclick="c.show(this,c.getObjById(*))" *=文本输入框名称  
* 参数3: 如果没有文本框没有值则使用该值初始化日历(选填).  
     如 onfocus="c.show(this,'2006-01-01')  
* 注: 参数顺序不分先后. MSIE6/Opera8/FireFox1.5 下测试通过  
   
***如果您使用本日历控件 请保留该信息 谢谢! *****   
* http://2lin.net  
* Email:caoailin@gmail.com  
* QQ:38062022  
* Creation date: 2006-11-22  
************************************/  
function Calendar(objName)   
{  
this.style = {  
  borderColor    : "#909eff", //边框颜色  
  headerBackColor   : "#909EFF", //表头背景颜色  
  headerFontColor   : "#ffffff", //表头字体颜色  
  bodyBarBackColor  : "#f4f4f4", //日历标题背景色  
  bodyBarFontColor  : "#000000", //日历标题字体色  
  bodyBackColor   : "#ffffff", //日历背景色  
  bodyFontColor      : "#000000", //日历字体色  
  bodyHolidayFontColor   : "#ff0000", //假日字体色  
  watermarkColor   : "#d4d4d4", //背景水印色  
  moreDayColor       : "#cccccc"  
};  
this.showMoreDay = false; //是否显示上月和下月的日期  
this.Obj = objName;  
this.date = null;  
this.mouseOffset = null;  
this.dateInput = null;  
this.timer = null;  
};  
Calendar.prototype.toString = function()  
{   
  var str = this.getStyle();  
  str += '<div Author="alin" class="calendar" style="display:none;" onselectstart="return false" oncontextmenu="return false" id="Calendar">\n';  
  str += '<div Author="alin" class="cdrWatermark" id="cdrWatermark"></div><div id="cdrBody" style="position:absolute;left:0px;top:0px;z-index:2;width:140px;">';  
  str += this.getHeader();  
  str += this.getBody();   
  str += '</div><div Author="alin" id="cdrMenu" style="position:absolute;left:0px;top:0px;z-index:3;display:none;" onmouseover="' + this.Obj + '.showMenu(null);" onmouseout="' + this.Obj + '.hideMenu();"></div></div>';  
  return str;  
};  
Calendar.prototype.getStyle = function()  
{  
  var str = '<style type="text/css">\n';  
str += '.calendar{position:absolute;width:140px!important;width /**/:142px;height:184px!important;height /**/:174px;background-color:'+this.style.bodyBackColor+';border:1px solid ' + this.style.borderColor + ';left:0px;top:0px;z-index:9999;}\n';  
str += '.cdrHeader{background-color:'+ this.style.headerBackColor +';width:140px;height:22px;font-size:12px;color:'+this.style.headerFontColor+';}\n';  
str += '.cdrWatermark{position:absolute;left:0px;top:55px;width:140px;font-family: Arial Black;font-size:50px;color:'+this.style.watermarkColor+';z-index:1;text-align:center;}\n';  
str += '.cdrBodyBar{background-color:' + this.style.bodyBarBackColor + ';font-size:12px;color:' + this.style.bodyBarFontColor + ';width:140px;height:20px;}\n';  
str += '.cdrBody{width:140px;height:122px!important; height /**/:110px;font-size:12px;cursor:pointer;color:' + this.style.bodyFontColor + ';}\n';  
str += '.dayOver{height:16px;padding:0px;border:1px solid black;background-color:#f4f4f4;}\n';  
str += '.dayOut{padding:1px;border:none;height:16px;}\n';  
  str += '.menuOver{background-color:'+this.style.headerBackColor+';color:'+this.style.headerFontColor+';font-size:12px;}\n';  
str += '.headerOver{border:1px solid black;background-color:#f4f4f4;color:black;cursor:default;}\n';  
str += '.cdrMenu{font-size:12px;border:1px solid #000000;background-color:#ffffff;cursor:default;width:100%}\n';  
str += 'html>body #Calendar{width:142px;174px;}';  
str += '</style>\n';  
return str;  
};  
Calendar.prototype.getHeader = function()  
{  
  var str = '<table Author="alin" class="cdrHeader" cellSpacing="2" cellPadding="0"><tr Author="alin" align="center">\n';  
str += '<td Author="alin" onmouseover="this.className=\'headerOver\'" onmouseout="this.className=\'\'" id="previousYear" title="上一年份" style="cursor:pointer;width:10px;" onclick="'+this.Obj+'.onChangeYear(false);"><<</td>\n';  
str += '<td Author="alin" onmouseover="this.className=\'headerOver\'" onmouseout="this.className=\'\'" id="previousMonth" title="上一月份" style="cursor:pointer;width:10px;" onclick="'+this.Obj+'.onChangeMonth(false);"><</td>\n';  
str += '<td Author="alin" onmouseover="this.className=\'headerOver\'" id="currentYear" style="width:50px;" onclick="' + this.Obj + '.showMenu(true);" onmouseout="' + this.Obj + '.hideMenu();this.className=\'\';">0</td>\n';  
str += '<td Author="alin" onmouseover="this.className=\'headerOver\'" id="currentMonth" onclick="' + this.Obj + '.showMenu(false);" onmouseout="' + this.Obj + '.hideMenu();this.className=\'\';">0</td>\n';  
str += '<td Author="alin" onmouseover="this.className=\'headerOver\'" onmouseout="this.className=\'\'" id="nextMonth" title="下一月份" style="cursor:pointer;width:10px;" onclick="'+this.Obj+'.onChangeMonth(true);">></td>\n';  
str += '<td Author="alin" onmouseover="this.className=\'headerOver\'" onmouseout="this.className=\'\'" id="nextYear" title="下一年份" style="cursor:pointer;width:10px;" onclick="'+this.Obj+'.onChangeYear(true);">>></td></tr>\n';  
str += '</table>\n';  
return str;  
};  
Calendar.prototype.getBody = function()  
{  
  var n = 0;  
  var str = this.getBodyBar();  
  str += '<table Author="alin" class="cdrBody" cellSpacing="2" cellPadding="0">\n';   
  for(i = 0; i < 6; i++)  
{    
  str += '<tr Author="alin" align="center">';  
for(j = 0; j < 7; j++)  
{  
str += '<td Author="alin" class="dayOut" id="cdrDay'+(n++)+'" width="13%"></td>\n';  
}  
str += '</tr>';  
}  
  str += '</table>\n';  
  str += '<table Author="alin" class="cdrBodyBar" cellSpacing="2" cellPadding="0"><tr align="center" Author="alin"><td Author="alin" style="cursor:pointer;" onclick="'+this.Obj+'.getToday();">今天:'+new Date().toFormatString("yyyy年mm月dd日")+'</td></tr></table>\n';  
  return str;  
};  
Calendar.prototype.getBodyBar = function()  
{  
  var str = '<table Author="alin_bar" id="cdrBodyBar" class="cdrBodyBar" style="cursor:move;" cellSpacing="2" cellPadding="0"><tr Author="alin_bar" align="center">\n';  
  var day = new Array('日','一','二','三','四','五','六');  
  for(i = 0; i < 7; i++)  
  {  
   str += '<td Author="alin_bar">' + day[i] + '</td>\n';    
  }  
  str += '</tr></table>';  
  return str;   
}  
Calendar.prototype.getYearMenu = function(year)  
{  
  var str = '<table Author="alin" cellSpacing="0" class="cdrMenu" cellPadding="0">\n';  
  for(i = 0; i < 10; i++)  
{    
  var _year = year + i;  
var _date = new Date(_year,this.date.getMonth(),this.date.getDate());  
  str += '<tr Author="alin" align="center"><td Author="alin" width="13%" height="16" ';  
if(this.date.getFullYear() != _year)  
{  
str += 'onmouseover="this.className=\'menuOver\'" onmouseout="this.className=\'\'" ';  
}  
else  
{  
  str += 'class="menuOver"';  
}  
str += 'onclick="' + this.Obj + '.bindDate(\'' + _date.toFormatString("-") + '\')">' + _year + '年</td>\n';  
str += '</tr>';  
}  
  str += '<tr Author="alin" align="center"><td Author="alin"><table Author="alin" style="font-size:12px;width:100%;" cellSpacing="0" cellPadding="0">\n';  
  str += '<tr Author="alin" align="center"><td Author="alin" onmouseover="this.className=\'menuOver\'" onmouseout="this.className=\'\'" onclick="'+this.Obj+'.getYearMenu('+ (year - 10) + ')"><<</td>\n';  
  str += '<td Author="alin" onmouseover="this.className=\'menuOver\'" onmouseout="this.className=\'\'" onclick="'+this.Obj+'.getYearMenu('+ (year + 10) +')">>></td><tr>\n';  
  str += '</table></td></tr>\n';  
  str += '</table>';  
  var _menu = getObjById("cdrMenu");  
_menu.innerHTML = str;  
};  
Calendar.prototype.getMonthMenu = function()  
{  
  var str = '<table Author="alin" cellSpacing="0" class="cdrMenu" cellPadding="0">\n';  
  for(i = 1; i <= 12; i++)  
{   
var _date = new Date(this.date.getFullYear(),i-1,this.date.getDate());  
str += '</tr><tr Author="alin" align="center"><td Author="alin" height="16" ';  
if(this.date.getMonth() + 1 != i)  
{  
str += 'onmouseover="this.className=\'menuOver\'" onmouseout="this.className=\'\'" ';  
}  
else  
{  
  str += 'class="menuOver"';  
}  
str += 'onclick="' + this.Obj + '.bindDate(\'' + _date.toFormatString("-") + '\')">'+i+'月</td></tr>\n';  
}  
  str += '</table>';  
  var _menu = getObjById("cdrMenu");  
_menu.innerHTML = str;   
};  
Calendar.prototype.show = function()  
{  
  if (arguments.length > 3 || arguments.length == 0)  
  {  
   alert("对不起!传入参数不对!" );  
 return;  
}   
  var _date = null;  
  var _evObj = null;  
  var _initValue = null   
  for(i = 0; i < arguments.length; i++)  
  {  
   if(typeof(arguments[i]) == "object" && arguments[i].type == "text")  
  {_date = arguments[i];}  
 else if(typeof(arguments[i]) == "object")  
  {_evObj = arguments[i];}  
 else if(typeof(arguments[i]) == "string")  
  {_initValue = arguments[i];}   
  }  
  _evObj = _evObj || _date;  
inputObj = _date;  
targetObj = _evObj  
if(!_date){alert("传入参数错误!"); return;}  
  this.dateInput = _date;  
  _date = _date.value;  
  if(_date == "" && _initValue) _date = _initValue;   
  this.bindDate(_date);      
  var _target = getPosition(_evObj);   
  var _obj = getObjById("Calendar");  
  _obj.style.display = "";  
   
  _obj.style.left = _target.x + 'px';  
  if((document.body.clientHeight - (_target.y + _evObj.clientHeight)) >= _obj.clientHeight)  
  {      
   _obj.style.top = (_target.y + _evObj.clientHeight) + 'px';  
}  
else  
{    
    _obj.style.top = (_target.y - _obj.clientHeight) + 'px';  
}  
};  

Calendar.prototype.hide = function()  
{  
  var obj = getObjById("Calendar");  
obj.style.display = "none";   
};  
Calendar.prototype.bindDate = function(date)  
{  
var _monthDays = new Array(31,30,31,30,31,30,31,31,30,31,30,31);  
var _arr = date.split('-');  
  var _date = new Date(_arr[0],_arr[1]-1,_arr[2]);  
if(isNaN(_date)) _date = new Date();  
this.date = _date;  
this.bindHeader();  
var _year = _date.getFullYear();  
var _month = _date.getMonth();  
var _day = 1;  
var _startDay = new Date(_year,_month,1).getDay();  
var _previYear = _month == 0 ? _year - 1 : _year;  
var _previMonth = _month == 0 ? 11 : _month - 1;  
var _previDay = _monthDays[_previMonth];  
if (_previMonth == 1) _previDay =((_previYear%4==0)&&(_previYear%100!=0)||(_previYear%400==0))?29:28;  
_previDay -= _startDay - 1;  
var _nextDay = 1;  
_monthDays[1] = ((_year%4==0)&&(_year%100!=0)||(_year%400==0))?29:28;  
for(i = 0; i < 40; i++)  
{  
  var _dayElement = getObjById("cdrDay" + i);  
_dayElement.onmouseover = Function(this.Obj + ".onMouseOver(this)");  
_dayElement.onmouseout = Function(this.Obj + ".onMouseOut(this)");  
_dayElement.onclick = Function(this.Obj + ".onClick(this)");  
this.onMouseOut(_dayElement);  
_dayElement.style.color = "";  
if(i < _startDay)  
{  
  //获取上一个月的日期  
if(this.showMoreDay)  
{  
  var _previDate = new Date(_year,_month - 1,_previDay);  
  _dayElement.innerHTML = _previDay;  
  _dayElement.title = _previDate.toFormatString("yyyy年mm月dd日");  
    _dayElement.value = _previDate.toFormatString("-");  
  _dayElement.style.color = this.style.moreDayColor;  
    _previDay++;  
}else  
{  
  _dayElement.innerHTML = "";  
    _dayElement.title = "";  
}  
}  
else if(_day > _monthDays[_month])  
{  
  //获取下个月的日期  
  if(this.showMoreDay)  
{  
 var _nextDate = new Date(_year,_month + 1,_nextDay);  
 _dayElement.innerHTML = _nextDay;  
 _dayElement.title = _nextDate.toFormatString("yyyy年mm月dd日");  
   _dayElement.value = _nextDate.toFormatString("-");  
 _dayElement.style.color = this.style.moreDayColor;  
   _nextDay++;    
}else  
{  
  _dayElement.innerHTML = "";  
    _dayElement.title = "";  
}  
}  
else if(i >= new Date(_year,_month,1).getDay() && _day <= _monthDays[_month])  
{  
      //获取本月日期  
  _dayElement.innerHTML = _day;  
  if(_day == _date.getDate())  
  {  
   this.onMouseOver(_dayElement);  
 _dayElement.onmouseover = Function("");   
   _dayElement.onmouseout = Function("");       
  }  
    
  if(this.isHoliday(_year,_month,_day))  
  {  
   _dayElement.style.color = this.style.bodyHolidayFontColor;    
  }  
  var _curDate = new Date(_year, _month, _day);  
  _dayElement.title = _curDate.toFormatString("yyyy年mm月dd日");  
  _dayElement.value = _curDate.toFormatString("-");  
  _day++;  
}  
else  
{  
  _dayElement.innerHTML = "";  
  _dayElement.title = "";  
}  
}  
var _menu = getObjById("cdrMenu");  
_menu.style.display = "none";  
};  

Calendar.prototype.bindHeader = function()  
{  
  var _curYear = getObjById("currentYear");  
  var _curMonth = getObjById("currentMonth");  
  var _watermark = getObjById("cdrWatermark");  
  _curYear.innerHTML = this.date.toFormatString("yyyy年");  
  _curMonth.innerHTML = this.date.toFormatString("mm月");  
  _watermark.innerHTML = this.date.getFullYear();    
};  
Calendar.prototype.getToday = function()  
{  
  var _date = new Date();  
  this.bindDate(_date.toFormatString("-"));  
};  
Calendar.prototype.isHoliday = function(year,month,date)  
{  
  var _date = new Date(year,month,date);  
  return (_date.getDay() == 6 || _date.getDay() == 0);  
};  
Calendar.prototype.onMouseOver = function(obj)  
{  
  obj.className = "dayOver";  
};  

Calendar.prototype.onMouseOut = function(obj)  
{  
  obj.className = "dayOut";  
};  
Calendar.prototype.onClick = function(obj)  
{   
 if(obj.innerHTML != "") this.dateInput.value = obj.value;  
 this.hide();  
};  
Calendar.prototype.onChangeYear = function(isnext)  
{  
  var _year = this.date.getFullYear();  
  var _month = this.date.getMonth() + 1;  
  var _date = this.date.getDate();  
  if(_year > 999 && _year <10000)  
  {  
    if(isnext){_year++;}else{ _year --;}  
  }  
  else  
  {  
   alert("年份超出范围(1000-9999)!");  
  }  
  this.bindDate(_year + '-' + _month + '-' + _date);  
};  
Calendar.prototype.onChangeMonth = function(isnext)  
{  
  var _year = this.date.getFullYear();  
  var _month = this.date.getMonth() + 1;  
  var _date = this.date.getDate();  
  if(isnext){ _month ++;} else {_month--;}  
  if(_year > 999 && _year <10000)  
  {  
    if(_month < 1) {_month = 12; _year--;}  
if(_month > 12) {_month = 1; _year++;}  
  }  
  else  
  {  
   alert("年份超出范围(1000-9999)!");  
  }   
  this.bindDate(_year + '-' + _month + '-' + _date);  
};  
Calendar.prototype.showMenu = function(isyear)  
{  
 var _menu = getObjById("cdrMenu");  
 if(isyear != null)  
 {  
var _obj = (isyear)? getObjById("currentYear") : getObjById("currentMonth");  
if(isyear)  
{  
  this.getYearMenu(this.date.getFullYear() - 5);    
}  
else  
{  
  this.getMonthMenu();    
}  
_menu.style.top = (_obj.offsetTop + _obj.offsetHeight) + 'px';  
_menu.style.left = _obj.offsetLeft + 'px';  
_menu.style.width = _obj.offsetWidth + 'px';  
  }  
if (this.timer != null) clearTimeout(this.timer);  
_menu.style.display="";  
}  
Calendar.prototype.hideMenu = function()  
{  
  var _obj = getObjById("cdrMenu");  
  this.timer = window.setTimeout(function(){_obj.style.display='none';},500);  
}  
Number.prototype.NaN0 = function()  
{  
  return isNaN(this) ? 0 : this;  
}  
Date.prototype.toFormatString = function(fs)  
{  
  if(fs.length == 1)  
  {  
   return this.getFullYear() + fs + (this.getMonth() + 1) + fs + this.getDate();  
  }  
  fs = fs.replace("yyyy",this.getFullYear());  
  fs = fs.replace("mm",(this.getMonth() + 1));  
  fs = fs.replace("dd",this.getDate());  
  return fs;  
}  
/******************************************公用方法及变量********************************************************/  
var inputObj = null; //输入对象  
var targetObj = null; //单击目标对象  
var dragObj = null; //拖动目标对象  
var mouseOffset = null; //拖动目标的位置  
//获取对象  
function getObjById(obj)  
{  
  if(document.getElementById)  
  {  
   return document.getElementById(obj);  
  }  
  else  
  {  
   alert("浏览器不支持!");  
  }  
}  
//获取鼠标位置  
function mouseCoords(ev)  
{  
if(ev.pageX || ev.pageY){  
return {x:ev.pageX, y:ev.pageY};  
}  
return {  
x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,  
y:ev.clientY + document.body.scrollTop - document.body.clientTop  
};  
}  
//获取目标的绝对位置  
function getPosition(e)  
{  
var left = 0;  
var top = 0;  
while (e.offsetParent){  
left += e.offsetLeft + (e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);  
top += e.offsetTop + (e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);  
e   = e.offsetParent;  
}  
left += e.offsetLeft + (e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);  
top += e.offsetTop + (e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);  
return {x:left, y:top};  
}  
//获取鼠标的偏移值  
function getMouseOffset(target, ev)  
{  
ev = ev || window.event;  
var docPos  = getPosition(target);  
var mousePos = mouseCoords(ev);  
return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y};  
}  
//关闭日历  
function closeCalendar(evt){  
evt = evt || window.event;  
var _target= evt.target || evt.srcElement;  
if(!_target.getAttribute("Author") && _target != inputObj && _target != targetObj)  
{  
  getObjById("Calendar").style.display = "none";    
}   
}  
//拖动日历开始  
function dragStart(evt){  
  evt = evt || window.event;  
var _target= evt.target || evt.srcElement;  
if(_target.getAttribute("Author") == "alin_bar")  
{    
  dragObj = getObjById("Calendar");    
  mouseOffset = getMouseOffset(dragObj, evt);  
}   
}  
//拖动日历中  
function drag(evt)  
{  
  evt = evt || window.event;  
if(dragObj)  
{    
 var mousePos = mouseCoords(evt);  
 dragObj.style.left = (mousePos.x - mouseOffset.x) + 'px';  
 dragObj.style.top = (mousePos.y - mouseOffset.y) + 'px';    
}  
}  
//拖动结束  
function dragEnd(evt)  
{  
  dragObj = null;    
}  
/*****end 公用方法***************/  

document.onclick = closeCalendar;  
document.onmousedown = dragStart;  
document.onmousemove = drag;  
document.onmouseup = dragEnd;  

/*****************结束********************/
Javascript 相关文章推荐
推荐30个新鲜出炉的精美 jQuery 效果
Mar 26 Javascript
分享10个原生JavaScript技巧
Apr 20 Javascript
javascript常用函数(1)
Nov 04 Javascript
jQuery自定义动画函数实例详解(附demo源码)
Dec 10 Javascript
jQuery 常见小例汇总
Dec 14 Javascript
jQuery 循环遍历改变a标签的href(实例讲解)
Jul 12 jQuery
详解Next.js页面渲染的优化方案
Jan 27 Javascript
Angular封装搜索框组件操作示例
Apr 25 Javascript
微信小程序使用Vant Weapp组件库的方法步骤
Aug 01 Javascript
Vue实现简单的跑马灯
May 25 Javascript
js实现复制粘贴的两种方法
Dec 04 Javascript
微信小程序input抖动问题的修复方法
Mar 03 Javascript
Js的MessageBox
Dec 03 #Javascript
硬盘浏览程序,保存成网页格式便可使用
Dec 03 #Javascript
常用js脚本
Dec 03 #Javascript
论坛特效代码收集(落伍转发-不错)
Dec 02 #Javascript
线路分流自动跳转代码;希望对大家有用!
Dec 02 #Javascript
phpwind放自动注册方法
Dec 02 #Javascript
一段好玩的JavaScript代码
Dec 01 #Javascript
You might like
信用卡效验程序
2006/10/09 PHP
PHP 文件上传进度条的两种实现方法的代码
2007/11/25 PHP
php empty函数判断mysql表单是否为空
2010/04/12 PHP
php网页病毒清除类
2014/12/08 PHP
PHP实现获取并生成数据库字典的方法
2016/05/04 PHP
php使用PDO获取结果集的方法
2017/02/16 PHP
php 使用expat方式解析xml文件操作示例
2019/11/26 PHP
PHP图像处理 imagestring添加图片水印与文字水印操作示例
2020/02/06 PHP
一段非常简单的让图片自动切换js代码
2006/11/10 Javascript
jquery实现个人中心导航菜单效果和美观都非常不错
2014/09/02 Javascript
js运动应用实例解析
2015/12/28 Javascript
图片旋转、鼠标滚轮缩放、镜像、切换图片js代码
2020/12/13 Javascript
详解JavaScript表单验证(E-mail 验证)
2016/03/31 Javascript
zepto与jquery的区别及zepto的不同使用8条小结
2016/07/28 Javascript
JS查找字符串中出现最多的字符及个数统计
2017/02/04 Javascript
微信小程序 input输入及动态设置按钮的实现
2017/10/27 Javascript
Angular实现的简单查询天气预报功能示例
2017/12/27 Javascript
JS运动特效之同时运动实现方法分析
2018/01/24 Javascript
Node.js静态服务器的实现方法
2018/02/28 Javascript
VUE-Table上绑定Input通过render实现双向绑定数据的示例
2018/08/27 Javascript
vue.js实现的全选与全不选功能示例【基于elementui】
2018/12/03 Javascript
简述ES6新增关键字let与var的区别
2019/08/23 Javascript
详解Python学习之安装pandas
2019/04/16 Python
Python限制内存和CPU使用量的方法(Unix系统适用)
2020/08/04 Python
用sleep间隔进行python反爬虫的实例讲解
2020/11/30 Python
html5简介_动力节点Java学院整理
2017/07/07 HTML / CSS
wordpress添加Html5的表单验证required方法小结
2020/08/18 HTML / CSS
世界上最伟大的马产品:Equiderma
2020/01/07 全球购物
Linux如何命名文件--使用文件名时应注意
2014/05/29 面试题
主要的Ajax框架都有什么
2013/11/14 面试题
建筑施工员岗位职责
2013/11/26 职场文书
保护环境演讲稿
2014/05/10 职场文书
人力资源管理求职信
2014/08/07 职场文书
2014年协会工作总结
2014/11/22 职场文书
2014年师德师风工作总结
2014/11/25 职场文书
Win11筛选键导致键盘失灵怎么解决? Win11关闭筛选键的技巧
2022/04/08 数码科技