IE8以下的浏览器要兼容的东西实在是太多,json也不例外
在IE7以下JSON.parse()转换成js对象会出现不兼容问题.
var json={"name":"张三","age":18,"gender":"男"}
var obj=JSON.parse(json);
console.log(obj); //在IE7以下浏览器会报错!!!
兼容方案一:
使用eval()函数兼容:
语法 var jsonStr=eval("("+json+")"); //注意: eval() '里面一定要用双引号把括号引起来然后拼接拿到的响应体
此函数虽让强大,但不推荐使用.因为容易受到XSS攻击,就是向你的网页注入一段恶意代码,你的网页会执行这段代码,这就叫XSS攻击
兼容方案二:
导入第三方库兼容:
引入json2.js,兼容所有浏览器.
不足: 只有IE7以下的浏览器才会出现JSON.parse兼容问题,其它流浪器打开不会出现兼容问题,但此时也用了json2.js库浪费用户流量.解决不足可以用到 css hack.
css hack语法: gt:大于 lt:小于 gte:大于或等于 lte:小于或等于
<!--[if lte IE 7]>
<script src="json2.js"></script>
<![endif]-->
//当浏览器小于IE7以下的版本才引入 json2.js
json2.js库下载:https://github.com/douglascrockford/JSON-js