Javascript 在ie8中报“缺少标识符、字符串或数字“

时间:2024-03-12 13:52:08

问题再现:

开发和测试使用Chrome浏览器比较多,客户反馈某个页面打不开,自己用Chrome打开一切正常,用ie8打开,果然页面展现卡在那儿了,并且报了”缺少标识符、字符串或数字“。查看是在knockout中报的错。

解决过程:

碰到这个问题,直接google查ie8 的这个错误,得到最多的结果是ie6、ie7中,json如果最后多一个逗号,就会出现这个异常。赶紧回头查询自己的代码中是否有这样的问题。逗号倒是没发现这种写法,分号倒是有几个结尾没写,顺手改了。甚至把代码复制到http://jsfiddle.net/,使用JSHint验证,保证验证通过。再测,还是这个异常。

没办法,只能使用knockout的dubug版本,断点一个一个调试,这个异常发生返回的信息挺丰富:

image

attr:{ class: IsEmailVerification() ? \'right\' : \'error\' }这句,一想就明白了,class这个在ie中有问题,改过来,果然异常消失了。后来在到knockout官网查询怎么绑定class,原来标准的写法是用css,然后再返回className赋值,自己写的不标准。ie中javascript的关键字会出现莫名的异常,而且还不好查错。另附javascript的链接http://ilovejsj.iteye.com/blog/468610