今天我在修改网页代码时,遇到了一个问题,FireFox下完全没有问题,而在IE中却报JS“缺少标识符 字符串或数字”错误 ,通过在网上搜索,现在终于解决了问题 。
网上搜了一把,果然不少人遇到过这个问题,原因就是:JSON最后的一项末尾多了一个逗号 。
我的js大致是:
HousecarForm = Class.create({
initialize: function(id){
this.form = $(id);
this.lang = “zh”;
this.dateFormat = “yyyy-mm-dd”;
……
},
functionNameA:function(){
……
},
functionNameB:function(){
……
},
……
functionNameB:function(){
……
},(原因就是多了这个逗号)
});//Class.create的结尾标识
在IE中,JSON最后一项的末尾是不允许有逗号的,在FF等浏览器下则可有可无。这个问题果然够典型,虽然很简单,还是记录一下,以防以后遇到这种错误再次无从下手。解决方法其实不用说了,最后的那个逗号干掉即可。
刚遇到的一个问题,在网页里加了个js下拉菜单,测试时谷歌浏览器下正常,唯独ie6中始终报错,无法正确显示。双击状态栏中的错误提示,显示错误:缺少标识符、字符串或数字。于是检查了一遍js文件和引用网页,也没发现引发错误原因。是js脚本不支持ie6浏览器吗?记得下载说明是支持的啊,用ie6查看了下官网demos也是没问题的。
后来网上搜索了一下,才知问题如此简单。是javascript语法错误的原因,在javascript对象定义中,最后一个属性不应该以一个","结尾。虽然这个语法错误在火狐和谷歌浏览器下不会出错,但在ie6、7中就会提示缺少标识符、字符串或数字,此问题已经在ie8 beta2后续版本中做了修正。
既然找出问题原因,解决就很容易了,删除多余的逗号就好了。