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学习笔记8 用JSON做原型
Jan 11 Javascript
jquery批量控制form禁用的代码
Aug 06 Javascript
jsonp原理及使用
Oct 28 Javascript
利用JS进行图片的切换即特效展示图片
Dec 03 Javascript
手写的一个兼容各种浏览器的javascript getStyle函数(获取元素的样式)
Jun 06 Javascript
jQuery实现类似淘宝网图片放大效果的方法
Jul 08 Javascript
jquery制作图片时钟特效
Mar 30 Javascript
基于javascript实现的快速排序
Dec 02 Javascript
原生js实现瀑布流布局
Mar 08 Javascript
vue-router判断页面未登录自动跳转到登录页的方法示例
Nov 04 Javascript
Node.js从字符串生成文件流的实现方法
Aug 18 Javascript
js实现简单扫雷
Nov 27 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
JSON两种结构之对象和数组的理解
2016/07/19 PHP
PHP 获取指定地区的天气实例代码
2017/02/08 PHP
删除PHP数组中的重复元素的实现代码
2017/04/10 PHP
PHP迭代器接口Iterator用法分析
2017/12/28 PHP
让getElementsByName适应IE和firefox的方法
2007/09/24 Javascript
js模拟C#中List的简单实例
2014/03/06 Javascript
分享一款基于jQuery的视频播放插件
2014/10/09 Javascript
轻松创建nodejs服务器(7):阻塞操作的实现
2014/12/18 NodeJs
JavaScript进阶练习及简单实例分析
2016/06/03 Javascript
jQuery插件EasyUI实现Layout框架页面中弹出窗体到最顶层效果(穿越iframe)
2016/08/05 Javascript
Javascript中常用的检测方法小结
2016/10/08 Javascript
ajax +NodeJS 实现图片上传实例
2017/06/06 NodeJs
微信小程序ajax实现请求服务器数据及模版遍历数据功能示例
2017/12/15 Javascript
JS实现简易计算器
2020/02/14 Javascript
JavaScript eval()函数定义及使用方法详解
2020/07/07 Javascript
[36:43]NB vs Optic 2018国际邀请赛小组赛BO1 B组加赛 8.19
2018/08/21 DOTA
python读取csv文件示例(python操作csv)
2014/03/11 Python
Python的加密模块md5、sha、crypt使用实例
2014/09/28 Python
Python基于DES算法加密解密实例
2015/06/03 Python
Python用zip函数同时遍历多个迭代器示例详解
2016/11/14 Python
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
2017/06/12 Python
python语言中with as的用法使用详解
2018/02/23 Python
不到20行代码用Python做一个智能聊天机器人
2019/04/19 Python
python gdal安装与简单使用
2019/08/01 Python
Python绘制股票移动均线的实例
2019/08/24 Python
python psutil监控进程实例
2019/12/17 Python
Python合并2个字典成1个新字典的方法(9种)
2019/12/19 Python
python如何通过twisted搭建socket服务
2020/02/03 Python
基督教卡片、励志礼品、家居装饰等:DaySpring
2018/10/12 全球购物
借款协议书范本
2014/04/22 职场文书
《大禹治水》教学反思
2014/04/27 职场文书
财务人员担保书
2014/05/13 职场文书
保险公司演讲稿
2014/09/02 职场文书
离婚代理词范文
2015/05/23 职场文书
呐喊读书笔记
2015/06/30 职场文书
党组织关系的介绍信模板
2019/06/21 职场文书