1. 程式人生 > >IE8下Extjs報缺少':'符號錯誤

IE8下Extjs報缺少':'符號錯誤

先介紹下這個問題的由來:

上午其他專案組人員在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解決。

&n