解决在IE8中无法使用原生JSON的问题

起因

       在项目中要将页面上的js对象传给后台,想到可以用json转成字符串传递。

1
2
var obj = { "a" :1 "b" :2, "c" :3};
var str = JSON.stringify(obj);

       上述代码在firefox,chrome中测试都没问题,可是在ie8下确提示JSON Not Defined,google了一下,自然也有别人遇到一样的问题,并且给出了解决方案,下面就分享一下,同时解释一下为什么会有这个问题。

解决

       首先说原因,微软文档的Requirements:Note中已经说的很清楚,翻译成中文意思大致如下:JSON是包含在JScript 5.8中,而为了向下兼容ie8只有在文档模式是”Internet Explorer 8 Standards”的时候才使用JScripte 5.8,其他时候使用JScripte 5.7特性。因此如果文档模式没有声明为”Internet Explorer 8 Standards”是找不到JSON对象的。
       那如何声明”Internet Explorer 8 Standards”呢,根据另一篇微软文档,有两种方式实现:

1
2
1. 在文档头中添加< meta http-equiv = "X-UA-Compatible" content = "IE=8" >
2. 使用<! DOCTYPE >来声明文档

这两种方式都是告诉ie8浏览器以Internet Explorer 8标准模式显示内容,同时使用ie8的最新特性。

文章作者: iitshare
本文地址:http://www.iitshare.com/ie8-not-use-native-json.html
版权所有 © 转载时必须以链接形式注明作者和原始出处!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值