<SCRIPT LANGUAGE="JavaScript">
<!--
// create array of abbreviated day names
var weekDay = new Array(7);
weekDay[0] = "星期日";
weekDay[1] = "星期一";
weekDay[2] = "星期二";
weekDay[3] = "星期三";
weekDay[4] = "星期四";
weekDay[5] = "星期五";
weekDay[6] = "星期六";function leapYear(year) {
if (year % 4 == 0) // basic rule
return true; // is leap year
return false; // is not leap year
}function getDays(month, year) {
var ar = new Array(12);// create array to hold number of days in each month
ar[0] = 31; // January
ar[1] = (leapYear(year)) ? 29 : 28 // February
ar[2] = 31; // March
ar[3] = 30; // April
ar[4] = 31; // May
ar[5] = 30; // June
ar[6] = 31; // July
ar[7] = 31; // August
ar[8] = 30; // September
ar[9] = 31; // October
ar[10] = 30; // November
ar[11] = 31; // December
return ar[month];
}function getMonthName(month) {
// create array to hold name of each month
var ar = new Array(12);
ar[0] = "一月";
ar[1] = "二月";
ar[2] = "三月";
ar[3] = "四月";
ar[4] = "五月";
ar[5] = "六月";
ar[6] = "七月";
ar[7] = "八月";
ar[8] = "九月";
ar[9] = "十月";
ar[10] = "十一月";
ar[11] = "十二月";
// return name of specified month (parameter)
return ar[month];
}function getMonthIndex(MonthName) {
// create array to hold name of each month
var ar = new Array(12);
ar["一月"]=0;
ar["二月"]=1;
ar["三月"]=2;
ar["四月"]=3 ;
ar["五月"]=4 ;
ar["六月"]=5 ;
ar["七月"]=6 ;
ar["八月"]=7 ;
ar["九月"]=8 ;
ar["十月"]=9 ;
ar["十一月"]=10 ;
ar["十二月"]=11  ;
return ar[MonthName];
}function setCal(date1) {
// standard time attributes
var now = new Date();
now.setTime(date1);
var year = now.getYear();
var month = now.getMonth();
var monthName = getMonthName(month);
var date = now.getDate();
now = null; // create instance of first day of month, and extract the day on which it occurs
var firstDayInstance = new Date(year, month, 1);
var firstDay = firstDayInstance.getDay();
firstDayInstance = null;
    
// number of days in current month
var days = getDays(month, year); // call function to draw calendar
drawCal(firstDay+1,days,date,monthName,year);
}function drawCal(firstDay, lastDate, date, monthName, year){

var text = "";
text += "<CENTER>";
text += "<TABLE BORDER=2 style='font-size:12px;line-height:14px' CELLSPACING=2 cellpadding=0>"; text+="<th align=left style='border-right-style:none;'><button style='background-color:transparent;padding:0,0,0,0;cursor:hand;font-size:10px;border:0px' onclick='javascript:var perior=new Date("+year+","+(getMonthIndex(monthName)-1)+",1);setCal(perior);'><<<</button></th>"; text += "<TH COLSPAN=5 style='border-right-style:none;border-left-style:none'>" ;// create table header cell
text += "<FONT COLOR=red>"; // set font for table header
text += year + "年" + monthName ;
text += "</FONT>"; // close table header"s font settings
text+="<th align=right style='BORDER-left-style:none;'><button style='background-color:transparent;padding:0,0,0,0;cursor:hand;font-size:10px;border:0px' onclick='javascript:var next=new Date("+year+","+(getMonthIndex(monthName)+1)+",1);setCal(next);'>>>></button></th>" ;
text += "</TH>" ;// close header cell
// variables to hold constant settings
var openCol = "<TD>";
openCol += "<FONT COLOR=darkblue>";
var closeCol = "</FONT></TD>";
// create first row of table to set column width and specify week day
text += "<TR ALIGN=center VALIGN=center style='font-weight:700'>";
for (var dayNum = 0; dayNum < 7; ++dayNum) {
text += openCol + weekDay[dayNum] + closeCol ;
}
text += "</TR>";

// declaration and initialization of two variables to help with tables
var digit = 1;
var curCell = 1;

for (var row = 1; row <= Math.ceil((lastDate + firstDay - 1) / 7); ++row) {
text += "<TR align=center valign=medium>";
for (var col = 1; col <= 7; ++col) {
if (digit > lastDate)
break;
if (curCell < firstDay) {
text += "<TD></TD>";
curCell++;

else {
if (digit == date) // current cell represent today's date
text += "<TD style='background-color:yellow'>"+digit+"</TD>";
else
text += "<TD>" + digit + "</TD>";
digit++;
    }
}
text += "</TR>";
}

// close all basic table tags
text += "</TABLE>";
text += "</CENTER>"; // print accumulative HTML string

document.body.innerHTML = text;
}
//-->
</SCRIPT>
<body></body>
<SCRIPT LANGUAGE="JavaScript">
<!--
setCal(new Date());
//-->
</SCRIPT>

解决方案 »

  1.   

    问题出在哪里??
    document.body.innerHTML = text;就因为没有写这一句吗??
    是不是我写的语句逻辑不对??
      

  2.   

    document.write是在当前位置插入语句,就是你调用setCal的位置,你说回出错吗?
      

  3.   

    o,我以为document.write把原来的内容都清空重写~~
    再问一下:
    function showmenuie5() {
    var rightedge = document.body.clientWidth-event.clientX;
    var bottomedge = document.body.clientHeight-event.clientY;
    if (rightedge < ie5menu.offsetWidth)
    ie5menu.style.left = document.body.scrollLeft + event.clientX -
    ie5menu.offsetWidth;
    else
    ie5menu.style.left = document.body.scrollLeft + event.clientX;
    if (bottomedge < ie5menu.offsetHeight)
    ie5menu.style.top = document.body.scrollTop + event.clientY -
    ie5menu.offsetHeight;
    }
    我截取的一段,很多属性看起来比较吃力
    document.scroolTop
    document.createElement()
    document.getElementById("")
    等等,很多属性和方法,这些平常的参考书都看不到,有相关的参考书没有,
    可以推荐一下吗?
    特别是我在做
    目录下拉菜单,看别人做得跟windows开始菜单那样,很歆慕,不知道有否资料给我参考一下
      

  4.   

    最好的参考资料是msdn,不过是英文的,但资料很全