欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

IE8下Extjs报缺少':'符号错误

程序员文章站 2022-03-21 18:07:25
先介绍下这个问题的由来: 上午其他项目组人员在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解决。