問題再現:
開發和測試使用Chrome瀏覽器比較多,客戶反饋某個頁面打不開,自己用Chrome打開一切正常,用ie8打開,果然頁面展現卡在那兒了,並且報了”缺少標識符、字符串或數字“。查看是在knockout中報的錯。
解決過程:
碰到這個問題,直接google查ie8 的這個錯誤,得到最多的結果是ie6、ie7中,json如果最后多一個逗號,就會出現這個異常。趕緊回頭查詢自己的代碼中是否有這樣的問題。逗號倒是沒發現這種寫法,分號倒是有幾個結尾沒寫,順手改了。甚至把代碼復制到http://jsfiddle.net/,使用JSHint驗證,保證驗證通過。再測,還是這個異常。
沒辦法,只能使用knockout的dubug版本,斷點一個一個調試,這個異常發生返回的信息挺豐富:
attr:{ class: IsEmailVerification() ? 'right' : 'error' }這句,一想就明白了,class這個在ie中有問題,改過來,果然異常消失了。后來在到knockout官網查詢怎么綁定class,原來標准的寫法是用css,然后再返回className賦值,自己寫的不標准。ie中javascript的關鍵字會出現莫名的異常,而且還不好查錯。另附javascript的鏈接http://ilovejsj.iteye.com/blog/468610