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中call()方法引发的对面向对象继承机制call的思考
Sep 12 Javascript
jQuery判断密码强度实现思路及代码
Apr 24 Javascript
仿百度输入框智能提示的js代码
Aug 22 Javascript
js中arguments,caller,callee,apply的用法小结
Jan 28 Javascript
JS获取URL中参数值(QueryString)的4种方法分享
Apr 12 Javascript
jQuery中addClass()方法用法实例
Jan 05 Javascript
yarn与npm的命令行小结
Oct 20 Javascript
利用Mongoose让JSON数据直接插入或更新到MongoDB
May 03 Javascript
AngularJs用户输入动态模板XSS攻击示例详解
Apr 21 Javascript
对 Vue-Router 进行单元测试的方法
Nov 05 Javascript
Node.js控制台彩色输出的方法与原理实例详解
Dec 01 Javascript
在 Vue 中使用 JSX 及使用它的原因浅析
Feb 10 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
简单的PHP留言本实例代码
2010/05/09 PHP
PHP中strtotime函数使用方法详解
2011/11/27 PHP
php验证是否是md5编码的简单代码
2014/04/01 PHP
php通过session防url攻击方法
2014/12/10 PHP
php使用pdo连接mssql server数据库实例
2014/12/25 PHP
WordPress中获取所使用的模板的页面ID的简单方法
2015/12/31 PHP
Smarty环境配置与使用入门教程
2016/05/11 PHP
PHP实现的最大正向匹配算法示例
2017/12/19 PHP
利用javascript/jquery对上传文件格式过滤的方法
2009/07/25 Javascript
js时间比较 js计算时间差的简单实现方法
2016/08/26 Javascript
jQuery实现frame之间互通的方法
2017/06/26 jQuery
node文件批量重命名的方法示例
2017/10/23 Javascript
基于webpack.config.js 参数详解
2018/03/20 Javascript
Vue CLI3中使用compass normalize的方法
2019/05/30 Javascript
Nuxt.js实现一个SSR的前端博客的示例代码
2019/09/06 Javascript
使用Layui搭建后台管理界面的操作方法
2019/09/20 Javascript
JS错误处理与调试操作实例分析
2020/04/13 Javascript
Js Snowflake(雪花算法)生成随机ID的实现方法
2020/08/26 Javascript
JavaScript编码小技巧分享
2020/09/17 Javascript
[02:03]DOTA2亚洲邀请赛 HGT战队出场宣传片
2015/02/07 DOTA
Python新手在作用域方面经常容易碰到的问题
2015/04/03 Python
详细解读tornado协程(coroutine)原理
2018/01/15 Python
解决python selenium3启动不了firefox的问题
2018/10/13 Python
Python容器使用的5个技巧和2个误区总结
2019/09/26 Python
Python如何使用turtle库绘制图形
2020/02/26 Python
python,Java,JavaScript实现indexOf
2020/09/09 Python
html5中嵌入视频自动播放的问题解决
2020/05/25 HTML / CSS
药学专业个人的自我评价
2013/12/31 职场文书
优良学风班申请材料
2014/02/13 职场文书
锦旗标语大全
2014/06/23 职场文书
创先争优公开承诺书
2014/08/30 职场文书
小学一年级数学教学计划
2015/01/20 职场文书
2015年国庆节寄语
2015/08/17 职场文书
如何计划开一家便利店?
2019/07/31 职场文书
解决mysql问题:由于找不到MSVCR120.dll,无法继续执行代码
2021/06/26 MySQL
类和原型的设计模式之复制与委托差异
2022/07/07 Javascript