javascript在显示线性日历时不执行(仅在所有版本的IE上)

javascript not executing when showing linear calendar (only on all version of IE)

本文关键字:版本 IE 线性 显示 日历 执行 javascript      更新时间:2023-09-26

我的客户在此页面上报告了线性日历的问题:http://www.portailjeunesselac2m.org/

除了IE(所有版本)之外,所有浏览器都可以使用

它只显示事件而不执行javascript。。。我试着调试它,但无法"理解"它失败的原因。。。你能帮我吗?

因为我不知道在哪里找,我会尝试让html验证它…以防万一!我修复了10个错误!。。。也许它能帮上忙!

*注3必须突出显示日期:10月8日、10日和24日。。。

问题就在这里(timeline.js,第53行)for(j = i; j > 0 && events[j - 1].date > tmp.date; j--)j = 1,但events是对象数组,前5个元素为空。并产生一个错误Unable to get property 'date' of undefined or null reference

由于,前5个元素丢失

if (date == "Invalid Date")
    continue;
this.events[i] = {

它跳过一些事件,但仍然增加i计数器,在数组中留下空元素。尝试用this.events.push({替换this.events[i] = {,并在关闭的}处添加)。或者使所有date有效:)

日期无效,因为new Date()未将"2014年1月11日"识别为有效日期。试着把它写在标题中作为"2014-01-11"("yyyy-mm-dd")

ps:作为快速"修复"-用var date = new Date(eventItems[i].getAttribute("title").replace(/('d+)'s+('d+)'s+('d+)/, '$3-$1-$2')); 替换var date = new Date(eventItems[i].getAttribute("title"));

pps:厌倦了所有的信息。这就是你的代码部分应该看起来像的样子

    for (var i = 0; i < eventItems.length; i++) {
        var date = new Date(eventItems[i].getAttribute("title")
                            .replace(/('d+)'s+('d+)'s+('d+)/, '$3-$1-$2'));
        if (date == "Invalid Date")
            continue;
        this.events.push({
            name    : eventItems[i].className,
            date    : date,
            day     : date.getDate(),
            month   : date.getMonth(),
            year    : date.getFullYear(),
            content : jQuery(eventItems[i]).text()            
        });
    }