2013-07-14 61 views
1

我正在处理此脚本以显示我的日历,错误控制台显示“日历未定义”。我无法弄清楚它有什么问题。我的JavaScript函数有什么问题?

这是对的.js页面的代码由约翰·WHS

function calendar() 
{ 

var calDate = new Date("July 6, 2015"); 
    document.write("<table id = 'calendar_table'>"); 
writeCalTitle(calDate); 
    writeDayNames(); 
writeCalDays(calDate); 

    document.write("</table>"); 

} 


    //function for the title of the calendar 
    //the parameter is a date object 
    function writeCalTitle(calendarDay) 
    { 

     // This is an array for the months 
     var monthName = ["January","February","March","April","May","June","July","August" 
     ,"September","October","November","December"] 

     var thisMonth = calendarDay.getMonth(); 
     var thisYear = caalendarDay.getFullYear(); 

     document.write("<tr>"); 
     document.write("<th id='calendar_head' colspan='7'>"); 
     document.write(monthName[month] + " " +year); 

     document.write("</th>"); 
     document.write("</tr>"); 
    } 

    function writeDayNames() 
{ 
    var dayName = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]; 
    document.write("<tr>"); 
    // This is a for loop 
    for(var i = 0; i<dayName.length; i++) 
     { 
     document.write("<th id='calendar_weekdays'>" + dayName[i]+"</th>"); 
     } 

    document.write("</tr>"); 
} 


function daysInMonth(calendarDay) 
{ 
var dayCount = [31,28,31,30,31,30,31,31,30,31,30,31]; 
var thisYear = calendarDay.getFullYear(); 
var thisMonth = calendarDay.getMonth(); 
if (thisYear % 4 == 0) 
    { 

    if ((thisYear % 100 != 0 || (thisYear % 400 ==0)) 
    { 
    dayCount[1] = 29; 
    } 
} 
return dayCount[thisMonth]; 
} 



function writeCalDays(calendarDay) 
    { 
    // says the starting day of the month 
    var day = new Date(calendarDay.getFullYear(), calendarDay.getMonth(), 1); 
    var weekDay = day.getDay(); 

    // writes blank cells before the starting day 
    document.write("<tr>"); 
    for (var i = 0; i < weekDay; i++) 
     { 
     document.write("<td></td>"); 
     } 

    // writes cells for the days of the month 
    var totalDays = dayIn Month(calendarDay); 

    for (var i = 1; i<= totalDays; i++) 
     { 
     day.setDate(i); 
     weekDay = day.getDay(); 
     } 
    if (weekDay == 0) document.write("<tr>"); 
    document.write("<td class='calendar_dates'>" + i + "</td>"); 
    if (i == highlightDay) 
     { 
     document.write("<td class='calendar_dates' id='calendar_today'>" + i + "</td>"); 
     } 
     else 
     { 
     document.write("<td class='calendar_dates'>" + i + "</td>"); 
     } 

    if (weekDay == 6) document.write("</tr>"); 


    } 
+0

该代码在哪里? – SLaks

+2

您的函数定义在'

0

函数声明也应该被视为脚本。因此...

<figure id="events"> 
<script type="text/javascript"> 

    function calendar() 
    { 

     var calDate = new Date("July 6, 2015"); 
     document.write("<table id = 'calendar_table'>"); 
     writeCalTitle(calDate); 
     writeDayNames(); 
     writeCalDays(calDate); 

     document.write("</table>"); 

    } 

    calendar(); 

</script> 
</figure> 

...应该给出更好的结果。

+0

John WHS谢谢,改变了它......虽然没有显示日历,但... – rikeerik

+0

首先,你打开一个表格,但不使用行,也不使用单元格。向我们展示'write *'函数的代码,最重要的是:检查页面的源代码。也许代码**是**生成的,即使浏览器的解释失败了某些东西^^ –

+0

我在源代码中寻找什么? – rikeerik

0

您必须将代码放在<script>标记内,或通过<script src="...">加载。

+0

我发现,当使用记事本++并试图将'加载到HTML中。 – 2013-07-15 10:21:03