本日历是网上收集的,原来不能兼容Firefox,经过我的修改使它兼容了Firefox,如果有什么意见请大家多指教。

<Script LANGUAGE="JavaScript">
 var months = new Array("一", "二", "三","四", "五", "六", "七", "八", "九","十", "十一", "十二");
 var daysInMonth = new Array(31, 28, 31, 30, 31, 30, 31, 31,30, 31, 30, 31);
 var days = new Array("日","一", "二", "三","四", "五", "六");
 var classTemp;
 var today=new getToday();
 var year=today.year;
 var month=today.month;
 var newCal;
 function getEvent(){     //同时兼容ie和ff的写法
         if(document.all)    return window.event;        
          func=getEvent.caller;            
         while(func!=null){    
             var arg0=func.arguments[0];
            if(arg0){
                 if((arg0.constructor==Event || arg0.constructor ==MouseEvent)
                     || (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation)){    
                     return arg0;
                  }
              }
              func=func.caller;
          }
         return null;
 }
 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();
 }

function Calendar() {
    newCal = new Date(year,month,1);
    today = new getToday();   
    var day = -1;
    var startDay = newCal.getDay();
    var endDay=getDays(newCal.getMonth(), newCal.getFullYear());
    var daily = 0;
    if ((today.year == newCal.getFullYear()) &&(today.month == newCal.getMonth()))
    {
       day = today.day;
    }
    var caltable = document.getElementsByTagName("*").caltable.tBodies.calendar;
    var intDaysInMonth =getDays(newCal.getMonth(), newCal.getFullYear());

for (var intWeek = 0; intWeek < caltable.rows.length;intWeek++)
    for (var intDay = 0;intDay < caltable.rows[intWeek].cells.length;intDay++)
      {
        var cell = caltable.rows[intWeek].cells[intDay];
        var montemp=(newCal.getMonth()+1)<10?("0"+(newCal.getMonth()+1)):(newCal.getMonth()+1);         
        if ((intDay == startDay) && (0 == daily)){ daily = 1;}
        var daytemp=daily<10?("0"+daily):(daily);
        var d="<"+newCal.getFullYear()+"-"+montemp+"-"+daytemp+">";
        if(day==daily) cell.className="DayNow";
        else if(intDay==6) cell.className = "DaySat";
        else if (intDay==0) cell.className ="DaySun";
        else cell.className="Day";
        if ((daily > 0) && (daily <= intDaysInMonth))
         {
           cell.innerHTML = daily;
           daily++;
          } else
           {
            cell.className="CalendarTD";
            cell.innerHTML = "";
           }
    }
    document.getElementsByTagName("*").year.value=year;
    document.getElementsByTagName("*").month.value=month+1;
 }

function subMonth()
 {
  if ((month-1)<0)
  {
   month=11;
   year=year-1;
  } else
  {
   month=month-1;
  }
  Calendar();
 }

function addMonth()
 {
  if((month+1)>11)
  {
   month=0;
   year=year+1;
  } else
  {
   month=month+1;
  }
  Calendar();
 }

function setDate()
 {
  if (document.getElementsByTagName("*").month.value<1||document.getElementsByTagName("*").month.value>12)
  {
   alert("月的有效范围在1-12之间!");
   return;
  }
  year=Math.ceil(document.getElementsByTagName("*").year.value);
  month=Math.ceil(document.getElementsByTagName("*").month.value-1);
  Calendar();
 }

function buttonOver()
{
 var evt = getEvent();
 var obj = (evt.srcElement)?evt.srcElement:evt.target;
 //obj.runtimeStyle.cssText = "background-color:#FFFFFF";
// obj.className="Hover";
}

function buttonOut()
{
 var evt = getEvent();
 var obj = (evt.srcElement)?evt.srcElement:evt.target;
 //window.setTimeout(function(){obj.runtimeStyle.cssText = "";},300);
}
</Script>
<style type="text/css">

Input {font-family: verdana;font-size: 9pt;text-decoration: none;background-color: #FFFFFF;height: 20px;border: 1px solid #666666;color:#000000;}

.Calendar {font-family: verdana;text-decoration: none;width: 170;background-color: #C0D0E8;font-size: 9pt;border:0px dotted #1C6FA5;}
.CalendarTD {font-family: verdana;font-size: 7pt;color: #000000;background-color:#f6f6f6;height: 20px;width:11%;text-align: center;}

.Title {font-family: verdana;font-size: 11pt;font-weight: normal;height: 24px;text-align: center;color: #333333;text-decoration: none;background-color: #A4B9D7;border-top-width: 1px;border-right-width: 1px;border-bottom-width: 1px;border-left-width: 1px;border-bottom-style:1px;border-top-color: #999999;border-right-color: #999999;border-bottom-color: #999999;border-left-color: #999999;}

.Day {font-family: verdana;font-size: 7pt;color:#243F65;background-color: #E5E9F2;height: 20px;width:11%;text-align: center;}
.DaySat {font-family: verdana;font-size: 7pt;color:#FF0000;text-decoration: none;background-color:#E5E9F2;text-align: center;height: 18px;width: 12%;}
.DaySun {font-family: verdana;font-size: 7pt;color: #FF0000;text-decoration: none;background-color:#E5E9F2;text-align: center;height: 18px;width: 12%;}
.DayNow {font-family: verdana;font-size: 7pt;font-weight: bold;color: #000000;background-color: #FFFFFF;height: 20px;text-align: center;}

.DayTitle {font-family: verdana;font-size: 9pt;color: #000000;background-color: #C0D0E8;height: 20px;width:11%;text-align: center;}
.DaySatTitle {font-family: verdana;font-size: 9pt;color:#FF0000;text-decoration: none;background-color:#C0D0E8;text-align: center;height: 20px;width: 12%;}
.DaySunTitle {font-family: verdana;font-size: 9pt;color: #FF0000;text-decoration: none;background-color: #C0D0E8;text-align: center;height: 20px;width: 12%;}

.DayButton {font-family: Webdings;font-size: 9pt;font-weight: bold;color: #243F65;cursor:hand;text-decoration: none;}</style>

<table id="caltable" cellspacing="1" cellpadding="0" border="0" class="Calendar">
    <thead>
        <tr valign="middle" align="center">
            <td class="Title" colspan="7"><a class="DayButton" title="上一月" href="javaScript:subMonth();">3</a>
               <input οnpaste="this.value=this.value.replace(/[^0-9]/g,'')" onKeyDown="if (event.keyCode==13)" onKeyUp="this.value=this.value.replace(/[^0-9]/g,'')" maxlength="4" size="4" name="year" /> 年
               <input οnpaste="this.value=this.value.replace(/[^0-9]/g,'')" onKeyDown="if (event.keyCode==13)" onKeyUp="this.value=this.value.replace(/[^0-9]/g,'')" maxlength="2" size="1" name="month" /> 月 <a class="DayButton" title="下一月" href="JavaScript:addMonth();">4</a> </td>
        </tr>
        <tr valign="middle" align="center">
            <Script LANGUAGE="JavaScript">  
   document.write("<TD class=DaySunTitle id=diary >" + days[0] + "</TD>");
   for (var intLoop = 1; intLoop < days.length-1;intLoop++)
    document.write("<TD class=DayTitle id=diary>" + days[intLoop] + "</TD>");
    document.write("<TD class=DaySatTitle id=diary>" + days[intLoop] + "</TD>");
  </Script>
        </tr>
    </thead>
    <tbody id="calendar" onClick="getDiary()" align="center" cellpadding="0" cellspacing="0" border="1">
        <Script LANGUAGE="JavaScript">
  for (var intWeeks = 0; intWeeks < 6; intWeeks++)
  {
   document.write("<TR style='cursor:hand'>");
   for (var intDays = 0; intDays < days.length;intDays++) document.write("<TD class=CalendarTD onMouseover='buttonOver();' onMouseOut='buttonOut();'></TD>");
   document.write("</TR>");
  }
 </Script>
    </tbody>
</table>
<Script  LANGUAGE="JavaScript">
 Calendar();
</Script>

js网页日历,兼容IE和Firefox相关推荐

  1. 复制到剪贴板的js代码(兼容ie、firefox、chorme、safari...什么都兼容!)

    对于非ie浏览器他是用flash来实现的,js代码如下: <script type="text/javascript">functioncopy_code(copyTe ...

  2. js获取滚动条距离浏览器顶部,底部的高度,兼容ie和firefox

    做web开发经常会碰到需要获取浏览器的滚动条与顶部和底部的距离,然后做相应的处理动作.下面作者就如何通过js来获取浏览器滚动条距离浏览器顶部和底部的高度做一下分享,这个是同时兼容ie和firefox的 ...

  3. scrolltop 原生js_解决js页面滚动效果scrollTop在FireFox与Chrome浏览器间的兼容问题的方法...

    最近在做博客的目录功能,发现一个在现代浏览器间的一个bug,或是称之为差异,即页面滚动值(scrollTop)的获取与设定. 在此之前先说一下关于页面元素的坐标获取,这张图的经典性不必再提. 实现滚动 ...

  4. 文件下载兼容ie,Firefox,chrome

    文件下载同时兼容ie,Firefox,chrome方法: response.setHeader("Content-Disposition", "attachment;fi ...

  5. 开源炫酷日历、网页日历模板、自适应大小日历、win10日历

    开源炫酷日历.网页日历模板.自适应大小日历 博主的话 如何引用 运行图片 文件目录 开源日历html.css源码 博主的话 本日历的样式,仿照的是Win10系统自带的日历样式.读者可自行粘贴源码放入所 ...

  6. 1500套HTML+CSS+JS网页设计期末课程大作业 web前端开发技术 web课程设计 网页规划与设计

    一.1500套HTML期末学生结课大作业作品(HTML+CSS+JS) 这8年来做了1000多套(HTML+CSS+JS)网页设计的学生期末大作业,都是给学生定制的都符合学校或者学生考试期末作业的水平 ...

  7. 网页日历与日期计算(一)

    基本的网页日历与日期计算 最近刚刚开始学习前端,先从基础的html+css+js方面学习(参考w3c).为了巩固学习成果,制作一个简单的网页日历以及日期计算,主要布局有: 页面显示日历,实现月份切换, ...

  8. 梅花雪Web Calendar ver 3.0 网页日历在asp.net 2.0的应用

    在.net中使用此控件,需要做些修改,经实验仅保留最佳方案,步骤如下: 1.   <script type="text/javascript" src= "../J ...

  9. 可以左右移动多选下拉列表的javaScipt(可以兼容IE和firefox)

    自己在项目业余时间总结了一份可以左右移动(Add和remove)多选下拉列表的javaScipt,可以兼容IE和firefox,并且经过测试,只是代码略显臃肿,希望各位网友参考后给一些指点,特别是在简 ...

最新文章

  1. Node.js 究竟是什么?
  2. php点击按钮做查找,点击按钮后运行PHP功能?
  3. C语言指针数组和数组指针
  4. 控制器属性传值的一些小问题
  5. 扩展虚拟机Ubuntu磁盘容量空间
  6. 首发:深度学习测试题中英对照版
  7. git、github、gitlab、gitee的区别
  8. DataNode之DirectoryScanner分析
  9. 表结构生成html页面,表结构设计器
  10. 网络入门-TRANK
  11. Travis CI mysql_连续集成 – 使用Travis CI配置Mysql 5.7
  12. IE8打开网页慢速度优化
  13. B站股权曝光:陈睿持股12.9%阿里持股7.9% 寻求双重主要上市
  14. 瑞士央行干预汇市以遏制瑞士法郎上涨
  15. 北航计算机控制系统实验报告,北航计算机控制系统实验报告详细分解.doc
  16. 从零讲JAVA ,给你一条清晰地学习道路!该学什么就学什么!!
  17. python自动生成采集规则_快速制作规则及获取规则提取器API
  18. matlab:nargin,varargin,varargout
  19. java string长度字节_java String类型数据的字节长度
  20. c语言反应能力的手机游戏,考验反应能力的游戏

热门文章

  1. 断舍离-你之所以无法放手的原因
  2. ubuntu -- 常规操作 编译、删除
  3. 阶乘的递归与迭代算法
  4. 迅雷会员账号 需要的请转
  5. 三星s2刷android wear,好过安卓手表?三星 Gear S2 上手体验
  6. python输入学生成绩判断学生等级_Python练习3:判断学生成绩等级
  7. TP6框架--EasyAdmin总结:暂时的离别和新的开始
  8. 查询其他系中比计算机科学某一学生年龄小的学生姓名和年龄.,①查询其他系中比计算机科学(CS)某一学生年龄小的学生姓名和年龄。-桃子题库网...
  9. MySQL最左匹配原则,程序员都得知道的原则
  10. k8s之pause容器