JavaScript代码因逗号不规范导致IE不兼容的问题


Posted in Javascript onFebruary 25, 2016

在用ExtJS做前端开发的时候,发现系统可以在谷歌浏览器、火狐下正常显示,但是用IE浏览器打开就会报错,报错信息如:Expected identified, string or number。后来,检查的代码的时候发现,是由于js代码中逗号用的不规范导致的IE不兼容。

由于我是用eclipse来写代码的,下面我也就介绍怎么用eclipse来解决这个问题:

例如有下面这么一段不规范的代码:

Ext.onReady(function() {
var panel = Ext.create('Ext.container.Viewport', { 
layout : 'border',
items : [{
title : 'north panel',
html : 'north content',
region : 'north',
height : 100,
}, {
title : 'west panel',
html : 'west content',
region : 'west',
width : 150, // 这是备注1
}, {
title : 'main panel',
html : 'main content',
region : 'center',
/* 这是备注2*/
}]
});
});

可以看到,在100、150、center后面都有一个逗号(,),用IE运行的话,其实是会报错的。那么既然代码已经写成这样了,怎么检测到这个问题呢!

JavaScript代码因逗号不规范导致IE不兼容的问题 

图1:File Search

如上图1所示,可以用eclipse的File Search功能,利用正则表达式进行搜索,正则表达式为,\s*}。不过,这有个问题,只能检索出上面的第一处错误,对于加了//或者/**/来注释的情况,是检测不出来。不过,你也可以用yuicompressor这样的js代码压缩工具来压缩代码,压缩的时候会将其中的所有的注释全部去掉,然后再来检测压缩后的js文件即可。当然,你也可以自己写算法来检测,不过,这个对于普通人来说还是有难度的!

不过,我建议用另一个方法,就是利用插件,我这里用的是Spket插件,Spket的官网是:http://www.spket.com/,可以到里面去下载Spket的eclipse插件,也可以直接在eclipse的market中下载,下载完以后安装下这个插件,然后将js文件用spket打开。

JavaScript代码因逗号不规范导致IE不兼容的问题 

图2:利用Spket检测

如上图2所示,可以发现Spket自动的检测了代码的不规范,将其中有问题的地方都标注了出来,我是建议用这个方法,因为可以在编写代码的时候,就发现问题,有助于写出规范漂亮的代码!另提一下,有些时候兼容性是因为使用的对象是IE中不存在的,比如console对象,在火狐和谷歌中是存在的,但是在ie中使用console.info就报错了!所以,记得把一些不兼容的对象从代码中剔除掉!

以上给大家介绍了JavaScript代码因逗号不规范导致IE不兼容的问题,希望对大家有所帮助!

Javascript 相关文章推荐
无语,javascript居然支持中文(unicode)编程!
Apr 12 Javascript
Jquery Ajax学习实例3 向WebService发出请求,调用方法返回数据
Mar 16 Javascript
JQuery插件fancybox无法在弹出层使用左右键的解决办法
Dec 25 Javascript
招聘网站基于jQuery实现自动刷新简历
May 10 Javascript
情人节单身的我是如何在敲完代码之后收到12束玫瑰的(javascript)
Aug 21 Javascript
简述JavaScript提交表单的方式 (Using JavaScript Submit Form)
Mar 18 Javascript
js实现三级联动效果(简单易懂)
Mar 27 Javascript
Vue自定义指令详解
Jul 28 Javascript
vue如何判断dom的class
Apr 26 Javascript
vue插件draggable实现拖拽移动图片顺序
Dec 01 Javascript
vue 项目build错误异常的解决方法
Apr 22 Javascript
JS实现关闭小广告特效
Jan 29 Javascript
jquery插件jquery.LightBox.js实现点击放大图片并左右点击切换效果(附demo源码下载)
Feb 25 #Javascript
JQuery ztree带筛选、异步加载实例讲解
Feb 25 #Javascript
jquery ztree实现模糊搜索功能
Feb 25 #Javascript
jQuery实现从身份证号中获取出生日期和性别的方法分析
Feb 25 #Javascript
jquery实现列表上下移动功能
Feb 25 #Javascript
js简单判断移动端系统的方法
Feb 25 #Javascript
jquery ztree实现树的搜索功能
Feb 25 #Javascript
You might like
thinkPHP实现基于ajax的评论回复功能
2018/06/22 PHP
PHP中散列密码的安全性分析
2019/07/26 PHP
用javascript获取地址栏参数
2006/12/22 Javascript
找到了一篇jQuery与Prototype并存的冲突的解决方法
2007/08/29 Javascript
JavaScript中的parse()方法使用简介
2015/06/12 Javascript
javascript每日必学之运算符
2016/02/16 Javascript
JavaScript中style.left与offsetLeft的使用及区别详解
2016/06/08 Javascript
AngularJS入门教程之迭代器过滤详解
2016/08/18 Javascript
JAVA Web实时消息后台服务器推送技术---GoEasy
2016/11/04 Javascript
element-ui 表格实现单元格可编辑的示例
2018/02/26 Javascript
js中innerText/textContent和innerHTML与target和currentTarget的区别
2019/01/21 Javascript
vue-cli history模式实现tomcat部署报404的解决方式
2019/09/06 Javascript
[20:30]职业巡回赛回顾
2018/08/09 DOTA
用python读写excel的方法
2014/11/18 Python
Python实现Const详解
2015/01/27 Python
Django 如何获取前端发送的头文件详解(推荐)
2017/08/15 Python
全面了解Nginx, WSGI, Flask之间的关系
2018/01/09 Python
Python命名空间的本质和加载顺序
2018/12/17 Python
如何通过python的fabric包完成代码上传部署
2019/07/29 Python
python中property和setter装饰器用法
2019/12/19 Python
pytorch的batch normalize使用详解
2020/01/15 Python
python实现凯撒密码、凯撒加解密算法
2020/06/11 Python
详解Python IO口多路复用
2020/06/17 Python
Python猫眼电影最近上映的电影票房信息
2020/09/18 Python
如何将anaconda安装配置的mmdetection环境离线拷贝到另一台电脑
2020/10/15 Python
英国最全面的橄榄球联盟门票网站:Live Rugby Tickets
2018/10/06 全球购物
美国艺术和工艺品商店:Hobby Lobby
2020/12/09 全球购物
必须要使用游标的SQL语句有那些
2012/05/07 面试题
优秀员工自荐书
2013/12/19 职场文书
青年安全生产示范岗事迹材料
2014/05/04 职场文书
运动会跳远广播稿5篇
2014/09/17 职场文书
2014年小学工作总结
2014/11/26 职场文书
中班下学期个人总结
2015/02/12 职场文书
党员个人总结自评
2015/02/14 职场文书
2016年“我们的节日·中秋节”活动总结
2016/04/05 职场文书
python机器学习实现oneR算法(以鸢尾data为例)
2022/03/03 Python