ie8 js编译器对象为空或不是对象的一个小问题

昨天在遍历json串的时候碰到了如下图所示的问题,除ie8以下版本的浏览器运行都是正常的,

部分代码如下:

 1 var Workmodel=function(){
 2     model_json=[
 3         {"name":"工作台","state":"工作台说明","img_src":"res/images/icon1.png","_background":"rgb(21, 183, 211)","_url":"#"},
 4         {"name":"工作台","state":"工作台说明","img_src":"res/images/icon2.png","_background":"rgb(235, 73, 75)","_url":"#"},
 5         {"name":"工作台","state":"工作台说明","img_src":"res/images/icon3.png","_background":"rgb(230, 119, 27)","_url":"#"},
 6         {"name":"工作台","state":"工作台说明","img_src":"res/images/icon4.png","_background":"rgb(50, 50, 50)","_url":"#"},
 7     ];
 8     this.execute=function(){
 9         this.pElement=$("#right-top .content");
10         this.result="";
11         $.each(model_json,function(a,b){
12             result+=‘<div class="mod" style="background:‘+b._background+‘"><a href=‘+b._url+‘><div class="mod-left"><div class="name">‘+b.name+‘</div><div class="text">‘+b.state+‘</div></div><div class="mod-icon"><img src=‘+b.img_src+‘ ></div></a></div></div>‘;
13         });
14         this.pElement.html(result);
15     };
16     this.execute();
17 };

然后我对json串进行了长度测试:

chrome环境中:

ie8环境中:

所以问题的根源找到了,为何会导致这样的结果我想罪魁祸首应该是json串中最后一个逗号,至于原因我想应该与浏览器内核与js执行引擎有关。

转自:http://www.cnblogs.com/tranren/p/4346367.html

时间: 2024-10-27 17:15:47

ie8 js编译器对象为空或不是对象的一个小问题的相关文章

JQuery EasyUI IE浏览器出现‘Rowspan’ 为空或不是对象

环境: EasyUI 1.4.2. 现象: 在使用JQuery EasyUI 的datagrid控件时,使用动态指定columns的方式,相关代码如下: $("#topApList").datagrid({columns:[[ {field:'aaa',title: 'aaa',align: 'center',width: 130}, {field:'bbb',title: 'bbb',align: 'center',width: 100}, ]] }); 在IE8浏览器中打开该页面时

IE浏览器报错 ‘Rowspan’ 为空或不是对象

摘自   http://blog.csdn.net/zxygww/article/details/46635403 环境: EasyUI 1.4.2. 现象: 在使用JQuery EasyUI 的datagrid控件时,使用动态指定columns的方式,相关代码如下: $("#topApList").datagrid({columns:[[{field:'aaa',title: 'aaa',align: 'center',width: 130},  {field:'bbb',title

$.browser.msie&#39; 为空或不是对象

'$.browser.msie' 为空或不是对象,这个是jQuery错误 出现这个错误,是因为升级了jQuery版本,从1.9以前升级到1.9以后,因为$.browser.msie在1.9以后的jQuery中不存在了,所以报错. jQuery 1.9 移除了 $.browser 的替代方法$.browser是通过正则表达式来匹配userAgent来判断浏览器版本和种类的.jquery1.3.2版本的文档中已经声明jquery.browser及jquery.browser.version建议弃用,

js判断是否为空和typeof的用法

(1)typeof作用用于查看数据类型 (2)typeof用法typeof 返回值类型有number, string, boolean, function, undefined, objectPS:在使用typeof()操作符时圆括号是可选项,可带可不带.即两种形式 typeof(XX) 或 typeof XX 1 console.log(typeof 2); // number 2 console.log(typeof "2"); // string 3 console.log(ty

c#中判断对象为空的几种方式(字符串等)

(1)先了解几个与空类型相关的关键字和对象  Null : 关键字表示不引用任何对象的空引用,它是所有引用类型变量的默认值,在2.0版本之前也就只有引用变量类型可以为null,如(string a=null)但在c# 2.0版本之后,Net也引入了可以为Null的值类型,但变量在定义的时候方式有所不同,如:int ? a=null.详细看http://msdn.microsoft.com/zh-cn/library/1t3y8s4s.aspx.不在内存中开辟内存地址,可用于引用是否可用.  DB

javascript 判断变量 是否为空null,undefined, 空数组,空对象(空Object),字符串是否为空或全由空白字符组成,数字是否为0,布尔是否为false。

javascript 判断变量 是否为空null,undefined, 空数组,空对象,空Object,字符串是否为空或全由空白字符组成,数字是否为0,布尔是否为false.由于Object没有length用 Object.keys()适用于数组,对象 返回可枚举的实例属性名组成的数组来判断是否为空. 利用逻辑判断中or (||)只要有一项为真则不再计算下一个表达式 来实现不管传入的参数是何种类型.只要符合我对空的定义即返回true. 1 function IsNothing(e) { 2 va

ExtJS 在IE7下报 isModel为空为空或不是对象

刚开始以为是兼容性问题--后来,发现居然是自定义的data数据多了个逗号.本来定义了多个数据,有一次把后面几条数据删除了,保留下来的最后一条数据后面的逗号没去掉.--! ExtJS 在IE7下报 isModel为空为空或不是对象,码迷,mamicode.com

JS function的定义方法,及function对象的理解。

废话篇: 今天看到了javascript的原型链,各种指向,各种对象有木有,各种晕,各种混淆有木有.兼职是挑战个人脑经急转弯的极限啊.不过,最终这一难题还是被我攻克了,哇咔咔.现在就把这东西记下来,免得到时候又忘了就悲催了.... 正文篇: function的定义方法,及function对象的理解. 在我大js中秉承着一切都是对象的原则,不论是方法还是其他都不例外. 我们在使用java的时候经常要编写方法,这时候其用的关键字是function,而在js中我们在编写函数的时候也是用这个关键字,所以

浅谈js中的执行环境和执行环境对象

什么是js的"执行环境",每当函数被调用的时候,就会产生一个新的执行环境,它是运行中的函数的意思,比方说运动员在奔跑的环境中,我们可以把运动员在奔跑的环境中,说成奔跑中的运动员,以此类推说成运行中的函数,行话叫”执行环境“. 下面我们就以一个例子进行分析执行环境对象,以下是执行环境对象的第一轮 以上的这个参数和函数都已被声明和赋值,并且局部变量已被声明,这个就是第一轮,接下来就是要执行第二轮 由于在执行环境中可以调用函数,其中会有很多的深度,其中又会设计到很多比较复杂的函数调用以及作用