先介绍下这个问题的由来:
上午其他项目组人员在rtx上问,求帮忙解决ie8兼容性问题。
然后快到饭点,知道这个bug肯定不是那么好解决,肯定不能耽误吃饭时间。
果断说,下午来弄。
下午3点开始去看这个bug。
具体问题就是:点击修改按钮报了缺少':',186行错误。
看了下他的代码186行,是空白行,上下行,也并没有:符号,这错误报的有点看不懂了。
不过这才有意思嘛,两下三下就解决的bug,干起来多没劲。
IE8真的很蛋疼,调试起来特别麻烦。调试模式开启,找到报错地方,‘treeselector’为空或不是对象,171行。
再定位到创建这个对象的地方。发现ie下创建就是不成功,而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解决。