转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> Web开发 >> 正文
一个兼容IE、Firefox和Opera浏览器的英文日历脚本         ★★★★

一个兼容IE、Firefox和Opera浏览器的英文日历脚本

作者:闵涛 文章来源:闵涛的学习笔记 点击数:2192 更新时间:2009/4/23 11:26:56
bsp; }
  nStartingYear ++;
  bShow=true
 }

 function decYear()
 {
  for (i=0; i<6; i++)
  {
   newYear = (i+nStartingYear)-1
   if (newYear==yearSelected)
   {
    txtYear = "&nbsp;<B>" + newYear + "</B>&nbsp;"
   }
   else
   {
    txtYear = "&nbsp;" + newYear + "&nbsp;"
   }
   document.getElementById("y"+i).innerHTML = txtYear
  }
  nStartingYear --;
  bShow=true
 }

 function selectYear(nYear)
 {
  yearSelected=parseInt(nYear+nStartingYear);
  yearConstructed=false;
  constructCalendar();
  popDownYear();
 }

 function constructYear()
 {
  popDownMonth()
  sHTML = ""
  if (!yearConstructed)
  {

   sHTML = "<tr><td align='center' onmouseover='this.style.backgroundColor=\"#FFCC99\"' onmouseout='clearInterval(intervalID1);this.style.backgroundColor=\"\"' style='cursor:pointer' onmousedown='clearInterval(intervalID1);intervalID1=setInterval(\"decYear()\",30)' onmouseup='clearInterval(intervalID1)'>-</td></tr>"

   j = 0
   nStartingYear = yearSelected-3
   for (i=(yearSelected-3); i<(yearSelected+3); i++)
   {
    sName = i;
    if (i==yearSelected)
    {
     sName = "<B>" + sName + "</B>"
    }

    sHTML += "<tr><td id='y" + j + "' onmouseover='this.style.backgroundColor=\"#FFCC99\"' onmouseout='this.style.backgroundColor=\"\"' style='cursor:pointer' onclick='selectYear("+j+");event.cancelBubble=true'>&nbsp;" + sName + "&nbsp;</td></tr>"
    j ++;
   }

   sHTML += "<tr><td align='center' onmouseover='this.style.backgroundColor=\"#FFCC99\"' onmouseout='clearInterval(intervalID2);this.style.backgroundColor=\"\"' style='cursor:pointer' onmousedown='clearInterval(intervalID2);intervalID2=setInterval(\"incYear()\",30)' onmouseup='clearInterval(intervalID2)'>+</td></tr>"

   document.getElementById("selectYear").innerHTML = "<table width=44 style='font-family:arial; font-size:11px; border-width:1; border-style:solid; border-color:#a0a0a0;' bgcolor='#FFFFDD' onmouseover='clearTimeout(timeoutID2)' onmouseout='clearTimeout(timeoutID2);timeoutID2=setTimeout(\"popDownYear()\",100)' cellspacing=0>" + sHTML + "</table>"

   yearConstructed = true
  }
 }

 function popDownYear()
 {
  clearInterval(intervalID1)
  clearTimeout(timeoutID1)
  clearInterval(intervalID2)
  clearTimeout(timeoutID2)
  crossYearObj.visibility= "hidden"
 }

 function popUpYear()
 {
  var leftOffset

  constructYear()
  crossYearObj.visibility = (dom||ie)? "visible" : "show"
  leftOffset = parseInt(crossobj.left) + document.getElementById("spanYear").offsetLeft
  if (ie)
  {
   leftOffset += 6
  }
  crossYearObj.left = leftOffset
  crossYearObj.top = parseInt(crossobj.top) + 26
 }

 /*** calendar ***/
   function WeekNbr(n)
   {
      // Algorithm used:
      // From Klaus Tondering's Calendar document (The Authority/Guru)
      // hhtp://www.tondering.dk/claus/calendar.html
      // a = (14-month) / 12
      // y = year + 4800 - a
      // m = month + 12a - 3
      // J = day + (153m + 2) / 5 + 365y + y / 4 - y / 100 + y / 400 - 32045
      // d4 = (J + 31741 - (J mod 7)) mod 146097 mod 36524 mod 1461
      // L = d4 / 1460
      // d1 = ((d4 - L) mod 365) + L
      // WeekNumber = d1 / 7 + 1
 
      year = n.getFullYear();
      month = n.getMonth() + 1;
      if (startAt == 0)
      {
         day = n.getDate() + 1;
      }
      else
      {
         day = n.getDate();
      }
 
      a = Math.floor((14-month) / 12);
      y = year + 4800 - a;
      m = month + 12 * a - 3;
      b = Math.floor(y/4) - Math.floor(y/100) + Math.floor(y/400);
      J = day + Math.floor((153 * m + 2) / 5) + 365 * y + b - 32045;
      d4 = (((J + 31741 - (J % 7)) % 146097) % 36524) % 1461;
      L = Math.floor(d4 / 1460);
      d1 = ((d4 - L) % 365) + L;
      week = Math.floor(d1/7) + 1;
 
      return week;
   }

 function constructCalendar ()
 {
  var aNumDays = Array (31,0,31,30,31,30,31,31,30,31,30,31)

  var dateMessage
  var startDate = new Date (yearSelected,monthSelected,1)
  var endDate

  if (monthSelected==1)
  {
   endDate = new Date (yearSelected,monthSelected+1,1);
   endDate = new Date (endDate - (24*60*60*1000));
   numDaysInMonth = endDate.getDate()
  }
  else
  {
   numDaysInMonth = aNumDays[monthSelected];
  }

  datePointer = 0
  dayPointer = startDate.getDay() - startAt
 
  if (dayPointer<0)
  {
   dayPointer = 6
  }

  sHTML = "<table  border=0 style='font-family:verdana;font-size:10px;'><tr>"

  if (showWeekNumber==1)
  {
   sHTML += "<td width=27><b>" + weekString + "</b></td><td width=1 rowspan=7 bgcolor='#d0d0d0' style='padding:0px'><img src='"+imgDir+"divider.gif' width=1></td>"
  }

  for (i=0; i<7; i++)
  {
   sHTML += "<td width='27' align='right'><B>"+ dayName[i]+"</B></td>"
  }
  sHTML +="</tr><tr>"
 
  if (showWeekNumber==1)
  {
   sHTML += "<td align=right>" + WeekNbr(startDate) + "&nbsp;</td>"
  }

  for ( var i=1; i<=dayPointer;i++ )
  {
   sHTML += "<td>&nbsp;</td>"
  }
 
  for ( datePointer=1; datePointer<=numDaysInMonth; datePointer++ )
  {
   dayPointer++;
   sHTML += "<td align=right>"
   sStyle=styleAnchor
   if ((datePointer==odateSelected) && (monthSelected==omonthSelected) && (yearSelected==oyearSelected))
   { sStyle+=styleLightBorder }

   sHint = ""
   for (k=0;k<HolidaysCounter;k++)
   {
    if ((parseInt(Holidays[k].d)==datePointer)&&(parseInt(Holidays[k].m)==(monthSelected+1)))
    {
     if ((parseInt(Holidays[k].y)==0)||((parseInt(Holidays[k].y)==yearSelected)&&(parseInt(Holidays[k].y)!=0)))
     {
      sStyle+="background-color:#FFDDDD;"
      sHint+=sHint==""?Holidays[k].desc:"\n"+Holidays[k].desc
     }
    }
   }

   var regexp= /\"/g
   sHint=sHint.replace(regexp,"&quot;")

   dateMessage = "onmousemove='window.status=\""+selectDateMessage.replace("[date]",constructDate(datePointer,monthSelected,yearSelected))+"\"' onmouseout='window.status=\"\"' "

   if ((datePointer==dateNow)&&(monthSelected==monthNow)&&(yearSelected==yearNow))
   {
    sHTML += "<b><a "+dateMessage+" title=\"" + sHint + "\" style='"+sStyle+"' href='javascript:dateSelected="+datePointer+";closeCalendar();'><font color=#ff0000>&nbsp;" + datePointer + "</font>&nbsp;</a></b>"
   }
   else if (dayPointer % 7 == (startAt * -1)+1)
   {
    sHTML += "<a "+dateMessage+" title=\"" + sHint + "\" style='"+sStyle+"' href='javascript:dateSelected="+datePointer + ";closeCalendar();'>&nbsp;<font color=#909090>" + datePointer + "</font>&nbsp;</a>"
   }
   else
   {
    sHTML += "<a "+dateMessage+" title=\"" + sHint + "\" style='"+sStyle+"' href='javascript:dateSelected="+datePointer + ";closeCalendar();'>&nbsp;" + datePointer + "&nbsp;</a>"
   }

   sHTML += ""
   if ((dayPointer+startAt) % 7 == startAt)
   {
    sHTML += "</tr><tr>"
    if ((showWeekNumber==1)&&(datePointer<numDaysInMonth))
    {
  

上一页  [1] [2] [3] [4]  下一页


[常用软件]Mozilla准备测试Firefox新版的安全更新  [常用软件]IE 7出炉,Firefox 2当道.谁才是“王者”?
[常用软件]Allpeers:让Firefox摇身一变为P2P客户端  [常用软件]最终功能完成:Firefox 2.0 RC1推出
[常用软件]用于Firefox的Google工具栏Beta 2发布 Firefox,Go…  [常用软件]超强恶搞 玩不崩溃的Firefox Firefox
[常用软件]Mozilla Firefox技巧拾零  [常用软件]Firefox: What’s the next step?
[常用软件]Mozilla Firefox 新手指南 0.8 版  [常用软件]Firefox 1.0 全方位试用
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台