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

js时间选择(兼容IE FF)

阅读更多
搞了很久,终于把让时间选择兼容IE和FF了。开心啊!

//中文月份,如果想显示英文月份,修改下面的注释
/*var months = new Array("January?, "February?, "March",
"April", "May", "June", "July", "August", "September",
"October", "November", "December");*/
var months = new Array("一月", "二月", "三月",
"四月", "五月", "六月", "七月", "八月", "九月",
"十月", "十一月", "十二月");
var daysInMonth = new Array(31, 28, 31, 30, 31, 30, 31, 31,
30, 31, 30, 31);
//中文周 如果想显示 英文的,修改下面的注释
/*var days = new Array("Sunday", "Monday", "Tuesday",
"Wednesday", "Thursday", "Friday", "Saturday");*/
var days = new Array("日","一", "二", "三",
"四", "五", "六");
var getObject,oldObject;//取得当前对象
function getDays(month, year) {
//下面的这段代码是判断当前是否是闰年的
if (1 == month)
return ((0 == year % 4) && (0 != (year % 100))) ||
(0 == year % 400) ? 29 : 28;
else
return daysInMonth[month];
}

function getToday() {
//得到今天的年,月,日
this.now = new Date();
this.year = this.now.getFullYear();
this.month = this.now.getMonth();
this.day = this.now.getDate();
}

today = new getToday();

function newCalendar() {
today = new getToday();

var sindex = document.getElementById("year").selectedIndex;
var fgg=eval("document.getElementById('year').options["+sindex+"]")
var parseYear = parseInt(fgg.text);

var newCal = new Date(parseYear,
document.getElementById("month").selectedIndex, 1);
var day = -1;
var startDay = newCal.getDay();
var daily = 0;
if ((today.year == newCal.getFullYear()) &&(today.month == newCal.getMonth()))
day = today.day;
var tableCal = document.getElementById("calendar").tBodies.dayList;
//alert(tableCal.rows.length);
var intDaysInMonth =getDays(newCal.getMonth(), newCal.getFullYear());
for (var intWeek = 0; intWeek < tableCal.rows.length;intWeek++)
for (var intDay = 0;intDay < tableCal.rows[intWeek].cells.length;intDay++)
{
var cell = tableCal.rows[intWeek].cells[intDay];
if ((intDay == startDay) && (0 == daily))
daily = 1;
if(day==daily)
//今天,调用今天的Class
cell.className = "today";
else if(intDay==6)
//周六
cell.className = "sunday";
else if (intDay==0)
//周日
cell.className ="satday";
else
//平常
cell.className="normal";
if ((daily > 0) && (daily <= intDaysInMonth))
{
if(window.ActiveXObject){
cell.innerText = daily;
}else{
cell.textContent = daily;
}

daily++;
}
else{
if(window.ActiveXObject){
cell.innerText = "";
}else{
cell.textContent = "";
}
}
}
}

function getDate(event) {
var e=window.event || event;
var srcElement = e.srcElement || e.target;
var sText;
if(window.ActiveXObject){
sText = srcElement.innerText;
}else{
sText = srcElement.textContent;
}
var sDate;
//这段代码处理鼠标点击的情况
//if ("TD" == srcElement.tagName)
if ("" != sText)
{//从这儿可以改显示日期的格式

if(showType==1)
sDate = document.getElementById("year").value + "-" + document.getElementById("month").value + "-" + sText + "";
else if(showType==2)
sDate = document.getElementById("month").value + "/" + sText +"/"+ document.getElementById("year").value;
else
sDate = document.getElementById("year").value + "-" + document.getElementById("month").value + "-" + sText + "";
getObject.value=sDate;
// setUpdateFlag(getObject);//触发事件,保存数据
HideLayer();

}
}

function HideLayer() {
document.getElementById("Layer").style.visibility = "hidden";

}

function LayerShow(){
document.getElementById("Layer").style.visibility = "visible";
}

function ShowLayer(t,l) {

if(oldObject==null)oldObject=getObject;//付值
if(document.getElementById("Layer").style.visibility != "visible" && oldObject==getObject){//判断是否操作同一表格
//if(l>480)l=l-131;
document.getElementById("Layer").style.top = t;
document.getElementById("Layer").style.left = l;
document.getElementById("Layer").style.visibility = "visible";
oldObject=getObject;
}
else if(oldObject==getObject){
HideLayer();
}
else{
//if(l>480)l=l-131;
document.getElementById("Layer").style.top = t;
document.getElementById("Layer").style.left = l;
document.getElementById("Layer").style.visibility = "visible";
oldObject=getObject;
}
}

function selectDate(inputId,divId,event){
var e=window.event || event;
e.cancelBubble = true;//冒泡,使触发页面事件失效
getObject=document.getElementById(inputId);
var img=document.getElementById(divId);
var xx="0px";//取得x坐标;
var yy="0px";//取得y坐标;
var pos=RicoUtil.toDocumentPosition(img);
if(window.ActiveXObject){
//xx=pos.x+this.img.offsetWidth+RicoUtil.docScrollLeft()+"px";
//yy=pos.y+RicoUtil.docScrollTop()+"px";
xx=pos.x+img.offsetWidth+"px";
yy=pos.y+"px";
}
else{
xx=pos.x+img.offsetWidth+"px";
yy=pos.y+"px";
}

newCalendar();
ShowLayer(yy,xx);//显示出div
}
function show(event){//冒泡,点击层失效
var e=window.event || event;
e.cancelBubble = true;

}
//定义移动
var Obj=''

//function(event){MMove(event);}
function MDown(id,event){
var e=window.event || event;
Obj=id;
//document.getElementById(id).setCapture();
var mousePos = mouseCoords(e);
var axx=0;//取得x坐标;
var ayy=0;//取得y坐标;
var imga=document.getElementById(id);
var pos=RicoUtil.toDocumentPosition(imga);
axx=pos.x;
ayy=pos.y;
pX=mousePos.x-axx;
pY=mousePos.y-ayy;
//pX=mousePos.x-document.getElementById(id).style.pixelLeft;
//pY=mousePos.y-document.getElementById(id).style.pixelTop;
}
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 MMove(event){
var e=window.event || event;
if(Obj!=''){
var mousePos = mouseCoords(e);
document.getElementById(Obj).style.left=mousePos.x-pX+"px";
document.getElementById(Obj).style.top=mousePos.y-pY+"px";
}
}

function MUp(){
if(Obj!=''){
//document.getElementById(Obj).releaseCapture();
Obj='';
}
}

document.onmouseup=MUp
document.onmousemove=MMove;
//定义div显示日期;
function getLayer(){

document.write("
");
document.write("
按住鼠标可拖移到其它位置
");
document.write("");
document.write("");

for (var intLoop = 1; intLoop < days.length-1;intLoop++)
document.write("");
document.write("");
document.write(" ");

for (var intWeeks = 0; intWeeks < 6; intWeeks++) {
document.write("");
for (var intDays = 0; intDays < days.length;intDays++)
document.write("");
document.write("");
}
document.write("
");

document.write(" (today.year == intLoop ? "Selected" : "") + ">" + intLoop); document.write(" ");

document.write(" " + months[intLoop]); document.write(" ");

document.write("
" + days[0] + " " + days[intLoop] + " " + days[intLoop] + "
 
");


document.body.onclick=HideLayer;//触发点击页面事件,关闭窗口
document.oncontextmenu=HideLayer;//触发点击页面右键,关闭窗口
}
//显示css
document.write("");

getLayer();//显示div
分享到:
评论

相关推荐

    JavaScript 瀑布流 吸顶 兼容IE FF Chrome

    实现JavaScript瀑布流兼容IE、Firefox和Chrome的方法包括: 1. 使用条件注释或者现代izr库来检测浏览器版本和特性。 2. 对于不支持CSS3 Flexbox或Grid的浏览器,可以使用JavaScript来计算和设置元素的样式,如宽度...

    JS 无限极菜单 兼容IE FF

    JS 无限极菜单 兼容IE FF 可更改图标

    jsencrypt.js 兼容IE,Chrome,FF

    jsencrypt 兼容IE8,Chrome,FF,包括exports.default,Object.defineProperty不兼容问题处理等。

    JS图片预览(兼容IE6、IE7、IE8和FF)

    在JavaScript(简称JS)中实现图片预览,尤其是在兼容老版本的Internet Explorer(如IE6、IE7、IE8)以及Firefox(FF)等浏览器上,需要考虑多种技术策略和兼容性问题。下面我们将详细讨论如何实现这个功能,并着重...

    兼容IE FF 省级三级联动

    在网页开发中,"兼容IE FF 省级三级联动"是一个常见的需求,涉及到前端界面交互和浏览器兼容性处理。这个需求通常出现在构建一个选择地址的下拉菜单时,用户首先选择省份,接着是城市,最后是区县,这三个级别形成一...

    日历控件(兼容IE FF)

    如果你需要在最新技术栈中使用,可能需要寻找更新的替代品,如jQuery UI的Datepicker,或者更现代的纯JavaScript库如Pickadate.js或Flatpickr。 总的来说,JSCal2-1.5作为一款经典的日历控件,对于那些关注跨浏览器...

    ie6 ie7 ff浏览器兼容

    #### 标题解析:“ie6 ie7 ff浏览器兼容” 该标题明确指出了文章关注的核心问题——即确保网页能在IE6、IE7及Firefox等浏览器中正确显示。这意味着开发者需要采取一定的措施来适配这些浏览器,确保无论用户使用何种...

    google鼠标经过JS特效,IE/FF兼容

    标题中的"google鼠标经过JS特效,IE/FF兼容"指的是一个JavaScript实现的特效,它在鼠标悬停(mouseover)某个元素时,会触发一个特定的动画效果,即上部的图片从小到大闪动出现。这个特效适用于谷歌浏览器(Google ...

    Js 实现的幻灯片效果 兼容 IE FF

    5. **兼容性处理**:由于JavaScript在不同浏览器中的实现可能存在差异,特别是对于老版本的Internet Explorer (IE)和Firefox,我们需要确保代码具有良好的浏览器兼容性。这可能涉及到使用polyfills(用于提供缺失...

    js新闻上下滚动效果(兼容IE和ff)

    在本示例中,"js新闻上下滚动效果(兼容IE和ff)"指的是利用JavaScript实现一个新闻标题在网页上进行上下滚动的效果,这种效果常见于新闻网站,能够展示多条新闻,同时保持页面空间的有效利用。这个效果不仅在现代...

    js绘图类库(兼容IE/FF/chrome) web流程图、图表

    1、基于raphael2.0的绘图(内含大量...2、几乎兼容所有浏览器包括ie, firefox,chrome,opera, Safari 3、内含说明文档和演示代码,详见demo文件夹 4、可动态拖动图形(贝磁曲线、动态拾色器、图表、地图导航、流程图等)。

    推拉门式菜单-兼容ie,ff

    总之,一个兼容IE和FF的推拉门式菜单需要考虑多方面的因素,包括HTML结构的合理性、CSS的跨浏览器编写和JavaScript的事件处理与动画实现。通过对这些方面进行精细调整和优化,我们可以创建出既美观又具有良好兼容性...

    万能网页图片在线编辑器JS插件(兼容IE&FF)

    网页图片处理JS插件1.0 简单介绍:插件可以让用户用户可以在欣赏图片的同时,把看好的图片直接制作成自己喜欢的样式后通过QQ等传播。(支持:放大缩小、加文字、透明、闪图、叠图、加对话框等等,特别支持GIF动画。...

    兼容ie6/ie7/ie8/ff 省市县的js

    综上所述,"兼容ie6/ie7/ie8/ff 省市县的js"是一个旨在解决跨浏览器兼容性的JavaScript组件,它实现了在旧版IE和Firefox上显示和操作省市县选择的功能。开发者在创建这样的组件时需要考虑DOM操作、事件处理、数据...

    js拖动层,兼容IE,FF

    很简洁,很实用的js拖动层,兼容IE,FF,

    JS在IE和FF中的兼容性问题

    JavaScript(简称JS)是一种广泛应用于Web开发的脚本语言,它在不同的浏览器中可能存在兼容性问题,特别是Internet Explorer(IE)和Firefox(FF)之间。这两个浏览器对JS的实现方式有所不同,导致某些特性或功能在...

    Xml+JS省市县三级联动(兼容IE FF)

    "Xml+JS省市县三级联动(兼容IE FF)"就是一个这样的解决方案,它利用JavaScript(JS)语言处理XML文件,实现了在不同浏览器(如Internet Explorer和Firefox)中都可正常运行的联动效果。 XML(Extensible Markup ...

    ajax兼容IE,FF问题

    最后,考虑到文件`ajax.js`可能是用于实现Ajax功能的库或脚本,它可能包含了上述兼容性的解决方案。在实际开发中,也可以使用成熟的库如jQuery、axios或fetch API,它们已经处理了很多兼容性问题,让开发者能更专注...

    基于Jquery可居中显示并兼容IE6+/FF等浏览器的瀑布流程序(jquery.easing.js,jquery.vgrid.js实现)

    在本项目中,通过结合Jquery库和两个特定的插件——jquery.easing.js与jquery.vgrid.js,实现了这种布局,并且确保了在包括IE6+以及Firefox在内的多种浏览器中的兼容性。 1. Jquery:Jquery是一个广泛使用的...

    FF和IE的兼容性问题总结

    FF和IE的兼容性问题一直是前端开发者面临的重要挑战。这些浏览器在处理JavaScript、DOM操作以及事件处理等方面的差异,可能导致代码在不同浏览器上表现不一致。以下是对这些兼容性问题的详细解析和解决策略: 1. **...

Global site tag (gtag.js) - Google Analytics