IE6/IE7中JavaScript json提示缺少标识符、字符串或数字问题处理
昨天在使用Jquery Ui Datapicker做显示签到日历功能的时候,出现了Js问题,在IE8/IE9以及FF、Chrome下都显示正常,
但是在IE6/IE7以及IE8兼容视图下显示有问题,提示“页面上有错误”,进一步查看显示错误信息“缺少标识符、字符串或数字”,
一开始以为是Jquery 和Jquery Ui的版本不匹配导致的,后来尝试了其他支持的版本也是不行,
然后将自己的Js代码逐段调式,在花了两个多小时后终于以外的发现是由Json最后一个键值后加了逗号引起的问题。
在网上查了一下,发现好多人也遇到的这种问题。以后要小心了。
var obj = {
'name': 'qqyumidi',
'gender': 'male' //此处不能加上, !!
}
alert(obj.name);
真是万恶的IE6/IE7,什么时候才能告别专门为IE做hack的日子。。。。。忍不住要吐槽微软了
相关推荐
-
JS在IE下缺少标识符的错误
根据报错的行数查找源码,也看不出哪里有问题,看样子没缺少什么啊,代码如下: if (opts.display.class != '') { $(list).addClass(opts.display.css); } 此句其实是判断 opts 对象的 display 的 class 属性有没值,否则就做相应的处理,语法上来说是没错的,后来上网搜索一番,才发现原来 IE 对JS语法的要求比较苛刻,因为其中的 class 是 js 的关键字,如用此来作变量的话,IE就会报以上错误了,唉! 由于这是 j
-
JavaScript实现生成GUID(全局统一标识符)
GUID(全局统一标识符)是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的.通常平台会提供生成GUID的API.生成算法很有意思,用到了以太网卡地址.纳秒级时间.芯片ID码和许多可能的数字.GUID的唯一缺陷在于生成的结果串会比较大. GUID的格式为:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 大家都知道GUID在前端开发中用处不大,但如果需要插入某个ID,并且这个ID与后台对应等其它需要GUID的操作时,为了方便,我们还是可以生成一个GUID
-
JavaScript中标识符提升问题
JS 存在变量提升,这个的设计其实是低劣的,或者是语言实现时的一个副作用.它允许变量不声明就可以访问,或声明在后使用在前.新手对于此则很迷惑,甚至许多使用JS多年老手也比较迷惑.但在 ES6 加入 let/const 后,变量Hoisting 就不存在了. 一. 变量未声明,直接使用 function test() { alert(notDefined); } test(); // ? 报错是自然的 二. 变量声明在末尾 function test() { alert(declaredButNo
-
浅析JavaScript中的同名标识符优先级
一,局部变量先使用后声明,不影响外部同名变量 复制代码 代码如下: var x = 1; // --> 外部变量x function fn(){ alert(x); // --> undefined 局部变量x先使用 var x = 2; // 后声明且赋值 } fn(); alert(x); // --> 1<BR> 第一点,函数fn内第一句输出x,x是在第二句才定义的.这在JS中是允许的,这里的允许是指不会出现语法错误程序可以运行. 但在其它语言如C,J
-
PHP生成不重复标识符的方法
本文实例讲述了PHP生成不重复标识符的方法.分享给大家供大家参考.具体实现方法如下: 生成唯一不重复的标识我们主要是根据当前的一个时间time然后再转换在md5值,这样几乎是可以保证标签的唯一性,下面整理了一些关于PHP生成不重复标识符程序代码,感兴趣的朋友可以来看一下 PHP倒是自带了生成唯一id的函数:uniqid() ,它是基于当前时间微秒数的,用法如下: 复制代码 代码如下: echo uniqid(); //13位的字符串 echo uniqid("php_"); //当然你
-
C#标识符的使用小结
标识符(Identifier)是适用于变量.类.方法和其他各种用户定义对象的一般术语. 在编写代码时遵循命名规则,可以让程序更加易懂.易读:而且还能提供它的功能信息,如它是否是一个常量.包名或类等,这都有助于对程序的理解. 标识符是由一系列字符组成,其中包括大小写字母.数字.下划线(_)和@字符.标识符不能以数字开头,也不能包含空格.合法的标识符的例子如Welcome1, _value, m_inputField1和button7.7button这个名字不是一个合法的标识符,因为它以数字开头.
-
C#中使用@声明变量示例(逐字标识符)
在C#中,@符号不仅可以加在字符串常量之前,使字符串不作转义之用,还可以加在变量名之前,使变量名与关键字不冲突,这种用法称为"逐字标识符".请看下面的代码: class @class { public static void @static(bool @bool) { if (@bool) System.Console.WriteLine("true"); else System.Console.WriteLine("false"); } } 这
-
JS中产生标识符方式的演变
一.ES5时代 var function 我们知道 JS 不象其它语言 Java.Ruby等,它用来命名变量的只有关键字 var,不论何种类型数据都用 var 声明,当然弱类型并不代表该语言没有类型,它的类型在运行时(根据不同运算符)会隐式转换.而其它语言如Java,光声明数字的关键字就有 int. float.double.long. // JS var num1 = 10; // 整数 var num2 = 10.1; // 浮点数 var str = 'John'; // 字符串 var
-
mysql把主键定义为自动增长标识符类型
1.把主键定义为自动增长标识符类型 在mysql中,如果把表的主键设为auto_increment类型,数据库就会自动为主键赋值.例如: create table customers(id int auto_increment primary key notnull, name varchar(15)); insert into customers(name) values("name1"),("name2"); 一旦把id设为auto_increment类型,my
-
VBS中的标识符(Identifiers)
VBS其实存在两种标识符: 普通标识符(NORMALIDENTIFIER) 中括号标识符(BRACKETIDENTIFIER) 但是我看过的VBS书籍上都只讲了普通标识符,没有讲中括号标识符. 普通标识符的规则我们已经很熟悉了: 第一个字符必须是字母. 后面的字符可以是字母.数字和下划线(_) 长度不能超过 255 个字符 不能是VBS保留的关键字 中括号标识符的规则更简单: 中括号括起来的任意Unicode字符(换行.回车和NULL除外) 长度不能超过 255 个字符(不包括中括号) 有了中括
随机推荐
- 深入理解React Native原生模块与JS模块通信的几种方式
- Javascript ES6中对象类型Sets的介绍与使用详解
- 邮件发送简单例子-jsp文件
- 谈谈Android开发之RecyclerView的使用全解
- Linux系统下使用rpm方式安装最新mysql5.7.17完整步骤
- location对象的属性和方法应用(解析URL)
- 做网页中需要掌握的八个CSS布局技巧
- jquery插件ContextMenu设置右键菜单
- Nginx实现不同域名输出不同的服务器头信息方法
- MongoDB快速入门笔记(六)之MongoDB的文档修改操作
- jQuery+PHP+MySQL实现无限级联下拉框效果
- jQuery LigerUI 使用教程表格篇(1)
- nginx启动服务提示98: Address already in use错误的解决
- Android实现通过手势控制图片大小缩放的方法
- 学习python类方法与对象方法
- PHP数组操作——获取数组最后一个值的方法
- node.js入门实例helloworld详解
- 掌握PHP垃圾回收机制详解
- IntelliJ IDEA使用SVN分支的简单介绍
- python-itchat 统计微信群、好友数量,及原始消息数据的实例