javascript在显示线性日历时不执行(仅在所有版本的IE上)
javascript not executing when showing linear calendar (only on all version of IE)
我的客户在此页面上报告了线性日历的问题: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()
});
}
- 如何确定相对较新版本的IE的高度和宽度(IE8不喜欢从JavaScript设置这种样式吗?
- javascript网格未在IE 8及以上版本中显示
- 是否可以使用Javascript检测所有版本的IE?怎样
- 针对IE 8及以下版本
- 图像加载不适用于 IE 8 或更低版本
- IE版本检查停止工作
- 如果用户的浏览器早于以下版本,则显示一条消息:IE 10、Firefox 39、Chrome 39、Opera 8
- 使用less.js检测旧版本的ie,然后使用filter
- jsPDF在任何IE版本中显示iframe
- fadeIn动画无法在IE中工作(所有版本)
- 获取IE版本+将类添加到正文
- 在Facebook图形中,使用Javascript的IE(所有版本)不支持API调用跨浏览器调用
- 什么版本的IE支持安全性=“;受限制的“;iframes
- 使用JQuery和IE在悬停时高亮显示表行-所有版本
- 如何在旧 IE 版本中将捕获组与 String.split 一起使用
- 对 IE 8 及更低版本的 NVD3 支持
- 什么是 IE 版本的网络驱动程序.Capabilities.firefox().
- 旧版本IE上的Jquery问题
- 某些版本IE中的JavaScript重定向问题
- 旧版本IE中JSON对象的问题