解决IE浏览器兼容性问题:“JSON”未定义

问题起因:
将JavaScript对象类型的参数通过JSON.stringify转换成字符串传递时,IE6、7、8会报:“JSON”未定义 的错误。

错误分析:
JSON是包含在JScript 5.8引擎中,而为了向下兼容ie8只有在文档模式是”Internet Explorer 8 Standards”的时候才使用JScripte 5.8,其他时候使用JScripte 5.7特性。因此如果文档模式没有声明为”Internet Explorer 8 Standards”,ie8是找不到JSON对象的。因为没有兼容到ie6/7,所以必然在ie6/7中,JSON会出现未定义的问题。

解决方案:
有两种解决方案:
1.通过在html文件的head头内引入json2.js文件来解决(万能方法):

  • json2.js作用:chrome浏览器等现代浏览器中存在JSON全局变量。这个变量有两个方法stringify(将js对象转化成json字符串)和parse(将json字符串转化成js对象)。这两个方法在js对象和json字符串转化过程中很有用。但是IE等老旧浏览器中没有这个全局变量。json2.js的作用就是:判断是否有全局变量JSON,如果没有就创建它。
  • json2.js下载地址:https://github.com/douglascrockford/JSON-js

2.声明”Internet Explorer 8 Standards”模式(不需要兼容到ie6/7):
方法如下:
在文档头添加
使用<!DOCTYPE>来声明文档

作者:搬砖的老刘
来源:CSDN
原文:https://blog.csdn.net/liu865033503/article/details/78191521
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值