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 语法集锦 脚本之家基础推荐
Nov 15 Javascript
将CKfinder整合进CKEditor3.0的新方法
Jan 10 Javascript
JavaScript中的运算符种类及其规则介绍
Sep 26 Javascript
jquery判断单选按钮radio是否选中的方法
May 05 Javascript
JS实现复制内容到剪贴板功能
Feb 05 Javascript
微信小程序 ES6Promise.all批量上传文件实现代码
Apr 14 Javascript
使用命令行工具npm新创建一个vue项目的方法
Dec 27 Javascript
微信小程序支付前端源码
Aug 29 Javascript
Vue 中对图片地址进行拼接的方法
Sep 03 Javascript
小程序实现授权登陆的解决方案
Dec 02 Javascript
小程序server请求微信服务器超时的解决方法
May 21 Javascript
vue 监听 Treeselect 选择项的改变操作
Aug 31 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注释实例技巧
2008/10/03 PHP
php生成的html meta和link标记在body标签里 顶部有个空行
2010/05/18 PHP
使用php计算排列组合的方法
2013/11/13 PHP
php输出图像的方法实例分析
2017/02/16 PHP
PHP实现将上传图片自动缩放到指定分辨率,并保持清晰度封装类示例
2019/06/17 PHP
tp5 sum某个字段相加得到总数的例子
2019/10/18 PHP
javascript setTimeout和setInterval 的区别
2009/12/08 Javascript
jquery中使用$(#form).submit()重写提交表单无效原因分析及解决
2013/03/25 Javascript
js离开或刷新页面检测(且兼容FF,IE,Chrome)
2014/03/05 Javascript
JS实现带鼠标效果的头像及文章列表代码
2015/09/27 Javascript
超漂亮的jQuery图片轮播特效
2015/11/24 Javascript
JavaScript拖拽、碰撞、重力及弹性运动实例分析
2016/01/08 Javascript
H5移动端适配 Flexible方案
2016/10/24 Javascript
canvas实现绘制吃豆鱼效果
2017/01/12 Javascript
实例详解display:none与visible:hidden的区别
2017/03/30 Javascript
JS ES6中setTimeout函数的执行上下文示例
2017/04/27 Javascript
Javascript 编码约定(编码规范)
2018/03/11 Javascript
JS实现的tab页切换效果完整示例
2018/12/18 Javascript
JS立即执行的匿名函数用法分析
2019/11/04 Javascript
解决antd日期选择组件,添加value就无法点击下一年和下一月问题
2020/10/29 Javascript
jQuery-App输入框实现实时搜索
2020/11/19 jQuery
python自动裁剪图像代码分享
2017/11/25 Python
IntelliJ IDEA安装运行python插件方法
2018/12/10 Python
python实现五子棋小游戏
2020/03/25 Python
在Python中,不用while和for循环遍历列表的实例
2019/02/20 Python
python try except返回异常的信息字符串代码实例
2019/08/15 Python
Python中无限循环需要什么条件
2020/05/27 Python
REN Clean Skincare官网:英国本土有机护肤品牌
2019/02/23 全球购物
简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp文件传输命令是什么?
2016/11/20 面试题
期末学生评语大全
2014/04/24 职场文书
离婚协议书怎么写(范本参考)
2014/09/30 职场文书
离职报告格式
2014/11/04 职场文书
教师聘用意向书
2015/05/11 职场文书
新学期感想
2015/08/10 职场文书
中学生运动会广播稿
2015/08/19 职场文书
nginx实现发布静态资源的方法
2021/03/31 Servers