`
ddh9504
  • 浏览: 112372 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

一个兼容的日历

阅读更多

我这里找了一个可以兼容各种浏览器的日历,与大家分享,欢迎访问交流,谢谢..............

分享到:
评论
3 楼 axiang_2898 2007-10-12  
看起来还不错,挺好的,有点不足之处就是只有日期,没有时间!如果在加上时间的话,我想会更好的!呵呵
2 楼 ddh9504 2007-10-12  
为给大家一个直观的印象我把源代码贴出来吧。代码如下:


ddh_calendar.js
_______________________________________

/****************
* 由于字数限制,请下载附件看使用说明.
*******如果您使用本日历控件 请保留该信息 谢谢! ***********  
* http://2lin.net
* Email:caoailin@gmail.com
* QQ:38062022
* Creation date: 2006-11-22
*
*MenderuDonghui
*Modify Date: 2007
*QQ: 438627765
*
*****************/

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;

var ddh_calendar = new Calendar("ddh_calendar");
document.write(ddh_calendar);

/*********结束**********/

/**
*普通调用:<input type="text" name="txt"  onfocus="ddh_calendar.showMoreDay = false;ddh_calendar.show(this,'1980-01-01');"/><input type="text" name="txt1"  onfocus="ddh_calendar.showMoreDay = false;ddh_calendar.show('1981-01-01',this);"/><input type="text" name="txt2"  onfocus="ddh_calendar.showMoreDay = false;ddh_calendar.show(this);"/><br /><div style="height:300px"></div> 按钮调用:<input type="text" name="btntxt" id="btntxt" /><input name="button" value="*" id="button" type="button" onclick="ddh_calendar.showMoreDay = true;ddh_calendar.show(getObjById('btntxt'),'1982-1-1',this)"/> <input type="text" name="btntxt1" id="btntxt1" /><input name="button1"  value="*"  id="button1" type="button" onclick="ddh_calendar.showMoreDay = true;ddh_calendar.show(getObjById('btntxt1'),this,'1983-1-1')"/><br /><br /><br />   <input type="text" name="btntxt3" id="btntxt3" /><input name="button3" value="*"  id="button3" type="button" onclick="ddh_calendar.showMoreDay = true;ddh_calendar.show(this,getObjById('btntxt3'))"/>
**/



_______________________________________
code.htm
_______________________________________

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>日历演示</title>
<script language="javascript" src="ddh_calendar.js" >
</script>
</head>
<body>
<form id="Form1">

普通调用:<input type="text" name="txt"  onfocus="ddh_calendar.showMoreDay = false;ddh_calendar.show(this,'1980-01-01');"/><input type="text" name="txt1"  onfocus="ddh_calendar.showMoreDay = false;ddh_calendar.show('1981-01-01',this);"/><input type="text" name="txt2"  onfocus="ddh_calendar.showMoreDay = false;ddh_calendar.show(this);"/><br /><div style="height:300px"></div> 按钮调用:<input type="text" name="btntxt" id="btntxt" /><input name="button" value="*" id="button" type="button" onclick="ddh_calendar.showMoreDay = true;ddh_calendar.show(getObjById('btntxt'),'1982-1-1',this)"/> <input type="text" name="btntxt1" id="btntxt1" /><input name="button1"  value="*"  id="button1" type="button" onclick="ddh_calendar.showMoreDay = true;ddh_calendar.show(getObjById('btntxt1'),this,'1983-1-1')"/><br /><br /><br />   <input type="text" name="btntxt3" id="btntxt3" /><input name="button3" value="*"  id="button3" type="button" onclick="ddh_calendar.showMoreDay = true;ddh_calendar.show(this,getObjById('btntxt3'))"/>



</form></body>
</html>
1 楼 ddh9504 2007-10-12  
大家为什么不看看我搜集的这个日历呢,这个可是能够兼容各种浏览器的哦,有时间看看吧,你看了以后就不会后悔的!!!

相关推荐

    3大浏览器全兼容 日历控件

    "3大浏览器全兼容 日历控件"的主题聚焦于实现一个能够在Internet Explorer、Firefox和Chrome这三大主流浏览器上都能无缝工作的日历选择功能。这个控件允许用户通过图形界面选择日期,常见于表单输入、事件预订或时间...

    日历控件兼容多浏览器

    总的来说,一个兼容多浏览器的日历控件是Web开发中的宝贵工具,它需要在易用性、功能和性能之间取得平衡,并且要能适应各种浏览器环境。通过选择具有强大社区支持和丰富资源的控件,开发者可以节省时间,提高工作...

    JS火狐兼容日历控件

    "JS火狐兼容日历控件"的描述意味着它提供了一个解决方案,不仅适用于基于Webkit内核的浏览器,如Chrome和Safari,还特别针对使用Gecko内核的Firefox进行了优化。下面我们将深入探讨JS日历控件的实现、设计考虑、兼容...

    日历控件(浏览器兼容)

    在这个特定的案例中,我们关注的是如何创建一个能够跨多个浏览器(包括Google浏览器)运行的日历组件,并解决可能遇到的兼容性问题。 在描述中提到的"parent 问题"可能指的是JavaScript中的跨域问题,因为Google...

    兼容所有浏览器的经典日历控件

    "兼容所有浏览器的经典日历控件"是一个专为网页设计的JavaScript组件,它旨在提供一个跨浏览器的日历选择功能,能够无缝地与输入框配合,使得用户在输入日期时能更加便捷。这种控件在各种网站、应用程序和表单中非常...

    jquery兼容所有浏览器双日历控件

    本资源提供了一个名为"jquery兼容所有浏览器双日历控件"的解决方案,它是一个高效、易用且跨浏览器的插件,特别适合那些需要用户输入两个日期范围的场景,如酒店预订、会议安排等。 该日历控件基于jQuery库,jQuery...

    兼容多浏览器js 日历控件大全

    3. **CSS兼容性**:样式兼容性是另一个挑战。比如,IE6不支持PNG透明,需要使用特定的CSS hack来解决。此外,盒模型的差异也需要处理,确保在所有浏览器中元素的尺寸计算一致。 4. **日期和时间处理**:JavaScript...

    js日历控件兼容所有浏览器

    "js日历控件 兼容所有浏览器 My97 DatePicker Beta 4.8"是这样一个解决方案,它致力于在不同浏览器环境下提供一致的用户体验。在早期的Web开发中,由于各浏览器对JavaScript的支持程度不同,实现跨浏览器的日历控件...

    兼容性好的日历控件极其使用方法

    在本文中,我们将深入探讨一个兼容性良好的日历控件,它能够适应IE、Firefox和Google浏览器,确保用户无论使用哪种浏览器都能获得一致的体验。 首先,我们要理解为何需要跨浏览器兼容性。由于市场上存在多种浏览器...

    一个兼容性很好的js脚本的日历控件

    今天我们将深入探讨一个轻量级且兼容性极佳的JS日历控件,这款控件大小不到20KB,不依赖jQuery,却能兼容所有主流浏览器,为开发者提供了极大的便利。 首先,我们关注的是其轻量级特性。在如今对页面加载速度要求...

    日历控件(兼容IE FF)

    总的来说,JSCal2-1.5作为一款经典的日历控件,对于那些关注跨浏览器兼容性的旧项目来说,是一个可靠的选择。然而,随着Web技术的发展,你可能需要考虑使用更现代的解决方案以获取更好的性能和功能。

    Calendar 日历控件 兼容IE9

    Calendar 日历控件 兼容IE6 兼容IE8 兼容IE9 兼容火狐 兼容谷歌

    兼容性非常好的js日历控件

    "兼容性非常好的js日历控件"是一个专为提高用户体验而设计的解决方案,它强调了在不同浏览器之间的广泛兼容性,包括Internet Explorer(IE)、Google Chrome以及Mozilla Firefox等主流浏览器。这意味着开发者可以在...

    一个简单的表格VBA日历窗体

    "wps"标签可能表明这个日历窗体也适用于WPS Office,这是一个与Microsoft Office兼容的办公软件。WPS Office同样支持VBA,因此上述VBA日历窗体的大部分代码在WPS中应该也能正常运行。 在"日历.xlsm"文件中,包含了...

    一个js日历控制

    【标题】:“一个js日历控制”所涉及的知识点 在网页开发中,JavaScript日历控件是一种常见的交互元素,用于展示日期选择器,通常用于输入日期或安排事件。本控件可能是通过纯JavaScript实现,也可能结合HTML和CSS...

    一个兼容ie 和firefox 的日历控件js

    标题中的“一个兼容ie 和firefox 的日历控件js”指的是一个JavaScript库,它被设计成能在Internet Explorer(IE)和Firefox这两个不同的浏览器上正常工作,提供日历功能。在Web开发中,由于不同浏览器对某些特性或...

    多浏览器兼容的JS日历控件

    "多浏览器兼容的JS日历控件"就是这样一个解决方案,它旨在提供一致的用户体验,无论用户使用的是Firefox、Chrome、Safari、Edge还是Internet Explorer。这个日历控件在设计时特别考虑了跨浏览器的兼容性,避免了由于...

    最好的日历控件集,兼容主流浏览器

    对于一个优秀的日历控件,它不仅需要提供直观、易用的界面,还必须具备良好的跨浏览器兼容性,以确保用户在各种设备和环境下都能获得一致的体验。以下是对"最好的日历控件集,兼容主流浏览器"这一主题的详细说明。 ...

    很好用的日历控件(兼容IE,firefox)

    梅华雨日历控件可能是这个控件的特定名称,可能是一款由梅华雨公司开发的、具有良好用户体验和功能丰富的日历组件。这类控件通常包含以下特性: 1. **用户界面**:设计简洁,符合用户习惯,通常通过点击图标或按钮...

Global site tag (gtag.js) - Google Analytics