先介紹下這個問題的由來: 上午其他項目組人員在rtx上問,求幫忙解決ie8相容性問題。 然後快到飯點,知道這個bug肯定不是那麼好解決,肯定不能耽誤吃飯時間。 果斷說,下午來弄。 下午3點開始去看這個bug。 具體問題就是:點擊修改按鈕報了缺少':',186行錯誤。 看了下他的代碼186行,是空白行 ...
先介紹下這個問題的由來:
上午其他項目組人員在rtx上問,求幫忙解決ie8相容性問題。
然後快到飯點,知道這個bug肯定不是那麼好解決,肯定不能耽誤吃飯時間。
果斷說,下午來弄。
下午3點開始去看這個bug。
具體問題就是:點擊修改按鈕報了缺少':',186行錯誤。
看了下他的代碼186行,是空白行,上下行,也並沒有:符號,這錯誤報的有點看不懂了。
不過這才有意思嘛,兩下三下就解決的bug,幹起來多沒勁。
IE8真的很蛋疼,調試起來特別麻煩。調試模式開啟,找到報錯地方,‘treeselector’為空或不是對象,171行。
再定位到創建這個對象的地方。發現ie下就是創建不了這個對象,對象值為undefined,而chrome下卻可以正常創建。
Ext.create('Ext.ux.TreeSelector',{
......
});
而這個創建對象的方法是完全沒毛病,也看不出任何破綻。
就思考,創建對象為空,是不是Ext.ux.TreeSelector沒有載入出來導致的。
就在js文件頭部require中加上‘Ext.ux.TreeSelector’,天真的以為這樣就可以解決了,去上個洗手間想著回頭來應該就沒啥問題。
回來被告知,還是報錯,整個頁面都打不開了。
然後報錯信息出來了,報錯信息:‘缺少':',186行,TreeSelector.js’;
因為reqiure預先載入了這個Ext.ux.TreeSelector這個js出來,所以這個js的錯誤就提前暴露出來了。
找到jar包中的這個js源碼,發現186行,arr.push({id,name}); 這種寫法chrome下不會報錯,而IE8下會報錯。正確寫法arr.push({id:1,name:'xx'})
bug解決。