`
siruoxian
  • 浏览: 237963 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

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

    博客分类:
  • java
阅读更多

js如下

<!--
document.write("<style>");
document.write("#__calendar{width:147px;margin:0;padding:0;}");
document.write("#calendarTable{ margin:0;padding:0;border:1px solid #000;}");
document.write("th,td{margin:0;padding:0px}");
document.write("#calendarTable th ,#calendarTable td{font:12px/20px 宋体,Arial,sans-serif;text-align:center;}");
document.write("#calendarTable thead th.week{border-top:1px solid #CCC;border-bottom:1px solid #ccc;background:#EEE;}");
document.write("#calendarTable thead tr.function th{border:1px solid #fff}");
document.write("#calendarTable thead tr.top{letter-spacing:1px;}");
document.write("#calendarTable thead a{color:#000;width:19px;height:18px;text-decoration:none;display:block;border:1px solid #ccc;background:#E1F1FF;}");
document.write("#calendarTable tbody a:hover{color:#990;width:19px;height:18px;text-decoration:none;display:block;border:1px solid #ccc;background:#E1F1FF;}");
document.write("#calendarTable thead a.today{width:98% !important;width:100%}");
document.write("#calendarTable thead a.today:hover{width:98% !important;width:100%}");
document.write("#calendarTable td{width:21px;height:20px;border-bottom:1px solid #E6E6E6;color:#fff;}");
document.write("#calendarTable th{height:21px;}");
document.write("#calendarTable tr.com{background:#fff;}");
document.write("#calendarTable tr.cur{background:#F0FAFF;}");
document.write("#calendarTable tbody a{color:#000;width:19px;height:18px;text-decoration:none;display:block;border:1px solid #fff;}");
document.write("#calendarTable tbody a:hover{color:#990;width:19px;height:18px;text-decoration:none;border:1px solid #E6E6E6;background:#E1F1FF;display:block;}");
document.write("#calendarTable tbody a.today{color:#c00;border:1px solid #DBDBDB;background:#CCE4FF;}");
document.write("#calendarTable tbody a.today:hover{color:#990;border:1px solid #DBDBDB;background:#CCE4FF;}");
document.write("#calendarTable tbody a.week{color:#c00;}");
document.write("</style>");
document.write("<div id='__calendar' style='position:absolute;display:none;'></div>");
document.write("<table cellspacing=\"0\" cellpadding=\"0\" id=\"calendarTable\"><thead><tr class=\"top\"><th>&nbsp;</th><th colspan=\"5\" id=\"sohwdate\"></th><th><a href=\"javascript:void(0);\" title=\"close\" onclick=\"shut()\">×</a></th></tr><tr class=\"function\"><th><a href=\"javascript:void(0);\" title=\"向前翻1年\" onclick=\"preYear()\">&lt;&lt;</a></th><th><a href=\"javascript:void(0);\" title=\"向前翻1月\" onclick=\"preMonth()\">&lt;</a></th><th colspan=\"3\"><a href=\"javascript:void(0);\" class=\"today\" title=\"今天\" onclick=\"getDate('0')\">今天</a></th><th><a href=\"javascript:void(0);\" title=\"向后翻1月\" onclick=\"nextMonth()\">&gt;</a></th><th><a href=\"javascript:void(0);\" title=\"向后翻1年\" onclick=\"nextYear()\">&gt;&gt;</a></th></tr><tr><th class=\"week\">日</th><th class=\"week\">一</th><th class=\"week\">二</th><th class=\"week\">三</th><th class=\"week\">四</th><th class=\"week\">五</th><th class=\"week\">六</th></thead><tbody id=\"calendarTbody\"></tbody></table>");
var objouter;
var objInput;
var isShow = true;
objouter=document.getElementById("__calendar");
var calendarTable = document.getElementById("calendarTable");
objouter.appendChild(calendarTable);
function setday(obj){objInput = obj;writeDate();sohwDate();objouter.style.top =getAbsoluteHeight(objInput)+getAbsoluteTop(objInput);objouter.style.left =getAbsoluteLeft(objInput);objouter.style.display = "block";}
function getAbsoluteHeight(ob){return ob.offsetHeight;}
function getAbsoluteWidth(ob){return ob.offsetWidth;}
function getAbsoluteLeft(ob){var s_el=0;el=ob;while(el){s_el=s_el+el.offsetLeft;el=el.offsetParent;}; return s_el}
function getAbsoluteTop(ob){var s_el=0;el=ob;while(el){s_el=s_el+el.offsetTop ;el=el.offsetParent;}; return s_el}
var daysInMonth = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var toDay = new Date();
var tempYear = toDay.getFullYear();
var tempMonth = toDay.getMonth();
var tbody = document.getElementById("calendarTbody");
var sohwId = document.getElementById("sohwdate");
function getDays(month, year)
{  
 if (1 == month) return ((0 == year % 4) && (0 != (year % 100))) || (0 == year % 400) ? 29 : 28;
 else return daysInMonth[month];
}
function writeDate() {  
 var curCal = new Date(tempYear,tempMonth ,1);
 var startDay = curCal.getDay();
 var daily = 0;
 var today = toDay.getDate();
 if(tempYear != toDay.getFullYear() || tempMonth != toDay.getMonth()) today = -1;
 var todayStyle = "";
 var weekEndStyle = "";
 clear();
 var intDaysInMonth =getDays(curCal.getMonth(), curCal.getFullYear());
 var weeks = (intDaysInMonth + startDay) % 7 == 0 ? (intDaysInMonth + startDay) / 7 : parseInt((intDaysInMonth + startDay ) / 7) + 1; 
 for (var intWeek = 1; intWeek <= weeks; intWeek++){
  var tr = document.createElement("tr");
  tr.setAttribute("onmouseover","javascript:this.className='cur'");  
  tr.setAttribute("onmouseout","javascript:this.className='com'");
  tr.onmouseover = function (){this.className = "cur";}
  tr.onmouseout = function (){this.className = "com";}
  for (var intDay = 0;intDay < 7;intDay++){   
   var td = document.createElement("td");
   if ((intDay == startDay) && (0 == daily))
    daily = 1;
    
   if(today == daily)  todayStyle="today";
   
   if (intDay == 6 || intDay == 0) weekEndStyle = "week" ;
   
   if ((daily > 0) && (daily <= intDaysInMonth))
   {
    td.innerHTML = "<a href=\"javascript:void(0);\" class=\""+ weekEndStyle + todayStyle +"\" onclick=\"getDate('"+daily+"')\" title=\""+eval(tempMonth+1)+"月"+daily+"日\">" + daily + "</a>";
    todayStyle = "";
    weekEndStyle = "";
    daily++;
   }else{
    td.innerHTML = "&nbsp;";
    todayStyle = "";
    weekEndStyle = "";
   }   
   tr.appendChild(td);   
  }
  tbody.appendChild(tr);
 }
}
function getDate(day){
 var year , month ,date;
 if(day == "0"){
  year = toDay.getFullYear();
  month = eval(toDay.getMonth()+1) < 10 ? "0"+eval(toDay.getMonth()+1) : eval(toDay.getMonth()+1);
  date = toDay.getDate() < 10 ? "0"+toDay.getDate() : toDay.getDate();
 }else{
  year = tempYear;
  month = eval(tempMonth+1) < 10 ? "0"+eval(tempMonth+1) : eval(tempMonth+1);
  date = day < 10 ? "0"+day : day;  
 }
 objInput.value = year + "-" + month +"-"+ date;
 close();
}
function sohwDate(){
 sohwId.innerHTML = tempYear + "年" + eval(tempMonth+1) +"月";
}
function preYear(){
 isShow = false;
 if(tempYear > 999 && tempYear < 10000){
  tempYear--;
 }else{
  alert("年份超出范围(1000-9999)!");
 }
 sohwDate();
 writeDate();
}
function nextYear(){
 isShow = false;
 if(tempYear > 999 && tempYear < 10000){
  tempYear++;
 }else{
  alert("年份超出范围(1000-9999)!");
 }
 sohwDate();
 writeDate();
}
function preMonth(){
 isShow = false;
 if(tempMonth >= 1){tempMonth--}else{tempYear--;tempMonth = 11;}
 sohwDate();
 writeDate();
}
function nextMonth(){
 isShow = false;
 if(tempMonth == 11){tempYear++;tempMonth = 0}else{tempMonth++}
 sohwDate();
 writeDate();
}
function clear(){
 var nodes = tbody.childNodes;
 var nodesNum = nodes.length;
 for(var i=nodesNum-1;i>=0;i--) {
  tbody.removeChild(nodes[i]);
 }
}
function shut(){
 close();
}
function close(){
 tempYear = toDay.getFullYear();
 tempMonth = toDay.getMonth();
 objouter.style.display = "none"
 objouter.style.top = 0;
 objouter.style.left = 0;
}
function vent(event){
 if(document.all){
  if(isShow){
   if (window.event.srcElement != objouter && window.event.srcElement != objInput) close();
   isShow = true;
   return;
  }
  isShow = true;  
 }else{
  if(isShow){
   if(event.target != objouter && event.target != objInput) close();
   isShow = true;
  }
  isShow = true;
 }
}
document.onclick = vent;
//-->

使用方法如下

<input type="text" name="productNews.createDate"
                 id="createdate" value="${productNews.createDate}"
                 onfocus="setday(this)"  />

引入js的方法

  <script language="javascript" src="js/newcalendar.js"></script>

分享到:
评论
2 楼 siruoxian 2012-05-15  
@1楼
tvriawnui 写道
${productNews.createDate}这是什么东东?


{productNews.createDate}是指你传递到页面的值。这只是一种获取方式。
你也可以通过其他方式传递进来。
1 楼 tvriawnui 2012-04-09  
${productNews.createDate}这是什么东东?

相关推荐

    js ie firefox 日历控件多多

    这个压缩包“js ie firefox 日历控件多多”显然包含了一系列适用于Internet Explorer(IE)、Firefox等浏览器的JavaScript日历插件或者库。下面我们将深入探讨JavaScript日历控件的相关知识点,并结合不同浏览器的...

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

    总之,日历控件是网页和应用程序中不可或缺的一部分,而“很好用的日历控件(兼容IE,firefox)”以及梅华雨日历控件代表了一款高效、跨浏览器的解决方案,能够帮助开发者提升用户体验并简化日期相关的操作。

    JS日历控件 (兼容IE firefox) 可选择时间

    本资源提供了一个兼容Internet Explorer(IE)和Firefox浏览器的JS日历控件,允许用户方便地选择日期和时间。以下是关于这个JS日历控件的一些关键知识点: 1. **跨浏览器兼容性**:此控件考虑到了不同的浏览器间...

    IE FF通用的日历控件

    "IE6 IE7 Firefox通用的日历控件"是针对早期主流浏览器(Internet Explorer 6、7以及Firefox)设计的一个兼容性良好的日历插件。这种控件的目标是确保在不同浏览器上提供一致的用户体验,因为当时各浏览器对Web标准...

    Calendar 日历控件 兼容IE9

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

    兼容ff和ie的日历控件 js

    从给定的文件标题、描述、标签以及部分内容中,我们可以提炼出关于“兼容FF和IE的日历控件JS”的详细知识点。以下是对这些知识点的深入解析: ### 标题:“兼容ff和ie的日历控件 js” #### 知识点1:兼容性问题 ...

    js 日历控件 兼容ie、firefox、opera

    总的来说,创建一个兼容IE、Firefox、Opera的JavaScript日历控件是一项综合性的任务,涉及到前端开发的多个方面,包括JavaScript编程、CSS样式设计、DOM操作、事件处理以及跨浏览器兼容性策略等。通过不断迭代和优化...

    javascript日历控件 兼容ie firefox opera

    在“javascript日历控件 兼容ie firefox opera”这个主题中,我们主要探讨的是一个能够同时在Internet Explorer(IE)、Firefox和Opera等主流浏览器上正常运行的JavaScript日历组件。 1. **日历控件的基本功能**: ...

    JS火狐兼容日历控件

    本文将详细介绍一个针对火狐和IE浏览器兼容的日历控件,该控件最初发布于2008年5月13日,并经过了后续的优化和修改,可以直接在下载后使用。 ### 控件概述 这个JS日历控件是一个JavaScript实现的轻量级组件,旨在...

    兼容ie6/7/8,firefox的日历控件

    【标题】"兼容ie6/7/8,firefox的日历控件"涉及到的是网页开发中的一个常见需求,即创建一个可以跨多个浏览器版本使用的日期选择组件。在网页设计中,日历控件常用于用户输入日期,如预订系统、表单填写等场景,能...

    js日期控件 支持IE、firefox、chrome

    本压缩包提供的是一款跨浏览器的JS日期控件,兼容IE、Firefox和Chrome这三种主流浏览器,为开发者提供了一种轻量级且易于使用的解决方案。 首先,我们来看一下"js日期控件"这个概念。JavaScript是一种广泛应用于...

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

    总之,创建一个兼容IE、Firefox和Google浏览器的日历控件需要对前端技术有深入的理解,包括JavaScript、CSS和HTML,以及如何利用现有的库和工具。同时,良好的编程实践和对用户需求的敏感性也是成功的关键。通过不断...

    兼容FF,IE的JAVASCRIPT日历控件

    总的来说,"兼容FF,IE的JAVASCRIPT日历控件"是一个综合了多种JavaScript技术的实例,包括DOM操作、事件处理、浏览器兼容性检测、日期处理等,对于学习JavaScript的开发者来说,这是一个很好的学习资源,可以帮助...

    兼容ie,firefox,google等多浏览器的日历控件

    本知识点主要聚焦于一个兼容IE、Firefox、Google等多浏览器的日历控件的实现,这在跨平台、跨设备的网页应用中尤为重要。 1. **浏览器兼容性**: - Internet Explorer (IE):尽管IE的市场份额已经显著下降,但仍有...

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

    这个双日历控件充分利用了jQuery的这些优点,确保在所有主流浏览器(如Chrome、Firefox、Safari、Edge、IE等)上都能正常运行,避免了因浏览器兼容性问题导致的用户体验下降。 日历控件通常包含以下几个关键功能: ...

    支持Firefox和IE浏览器的纯js日历控件(类似AJAX自带的日历控件)

    "支持Firefox和IE浏览器的纯js日历控件"是一个旨在兼容两种主流浏览器(Firefox和Internet Explorer)的JavaScript库,其设计灵感来源于AJAX自带的日历控件。在AJAX技术中,日历控件通常通过异步交互提供无刷新的...

    html js脚本日历控件

    7. **兼容性**:考虑到浏览器的多样性,编写JavaScript日历控件时需要关注跨浏览器的兼容性问题,确保在不同的浏览器(如Chrome、Firefox、Safari、Edge和IE)上都能正常工作。 在提供的文件名中,"calendar.html"...

    JS日期选择器(兼容IE,FireFox,Oprea,chrome等主流浏览器)

    "JS日期选择器(兼容IE,FireFox,Oprea,chrome等主流浏览器)"是一个专门为JavaScript环境设计的,旨在解决跨浏览器兼容性问题的日期选择工具。这个组件的目标是确保在不同浏览器如Internet Explorer(IE)、Firefox、...

Global site tag (gtag.js) - Google Analytics