我只在IE 9和10上收到错误(我不支持IE9以下的任何内容),该网站在IE 11和其他浏览器上运行正常。
我正在填充时区信息并将其显示在我的页面上,但脚本在上述浏览器版本中给出了错误。
这是我的JS代码
populateLocalTimeInfo: function() {
var days = [sun, mon, tue, wed, thu, fri, sat],
weekDayNumber = (new Date).getDay(),
weekDay = days[weekDayNumber],
localTime = date.formatFullDate(new Date());
// Timezone
var regExp = /\(([^)]+)\)/;
localTime += ' (' + regExp.exec(new Date)[1] + ')';
$('#local_time').html(replaceParams(localDateTime, [weekDay, localTime]));
},
我收到脚本错误的行是
localTime += ' (' + regExp.exec(new Date)[1] + ')';
我不确定为什么IE 9和10无法解析这行代码并且无法获取属性错误。因此,我的页面将永远加载内容。
我在IE 11上看不到相同的脚本错误,页面加载就好了。
答案 0 :(得分:2)
您的代码依赖于new Date
,转换为字符串,其中包含括号,例如Chrome中的示例:
Thu Apr 24 2014 08:50:04 GMT+0100 (BST)
但是在IE10上(至少在我的语言环境中),它没有括号:
Thu Apr 24 08:50:10 UTC+0100 2014
因此exec
返回null
(因为没有匹配),因此错误。
该字符串的确切格式is undefined by the specification:
15.9.5.2
Date.prototype.toString ( )
此函数返回String值。 String的内容依赖于实现,但旨在以方便的,人类可读的形式表示当前时区中的Date。