“JSON”在IE中是未定义的错误
我正在做一个WCF服务的AJAX调用,当我传递我的数据我使用JSON.stringify()
调用返回并正常工作在FF,&Chrome,但不是IE8。 我得到一个错误:'JSON'是未定义的
build议?
PS我也希望这个工作在IE7
使用json2来实现一致的跨浏览器实现。
我有问题与IE9。 IE9呈现我的网页在“怪癖”模式,解决scheme只是添加<!DOCTYPE html>
。 这使我走出了“怪癖”模式,我肯定不仅仅是这个问题!
更新
检查JSON3库。 它像一个魅力。
从JSON2的变化
我希望这有帮助。
希望这可以帮助。 我从几个在线资源中得到了很多。 没有他们的链接。
对不起,我无法引用参考。
var JSON = JSON || {}; // implement JSON.stringify serialization JSON.stringify = JSON.stringify || function(obj) { var t = typeof (obj); if (t != "object" || obj === null) { // simple data type if (t == "string") obj = '"' + obj + '"'; return String(obj); } else { // recurse array or object var n, v, json = [], arr = (obj && obj.constructor == Array); for (n in obj) { v = obj[n]; t = typeof (v); if (t == "string") v = '"' + v + '"'; else if (t == "object" && v !== null) v = JSON.stringify(v); json.push((arr ? "" : '"' + n + '":') + String(v)); } return (arr ? "[" : "{") + String(json) + (arr ? "]" : "}"); } }; // implement JSON.parse de-serialization JSON.parse = JSON.parse || function() { var r = "(?:-?\\b(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?\\b)", k = '(?:[^\\0-\\x08\\x0a-\\x1f"\\\\]|\\\\(?:["/\\\\bfnrt]|u[0-9A-Fa-f]{4}))'; k = '(?:"' + k + '*")'; var s = new RegExp( "(?:false|true|null|[\\{\\}\\[\\]]|" + r + "|" + k + ")", "g"), t = new RegExp( "\\\\(?:([^u])|u(.{4}))", "g"), u = { '"' : '"', "/" : "/", "\\" : "\\", b : "\u0008", f : "\u000c", n : "\n", r : "\r", t : "\t" }; function v(h, j, e) { return j ? u[j] : String.fromCharCode(parseInt(e, 16)); } var w = new String(""), x = Object.hasOwnProperty; return function(h, j) { h = h.match(s); var e, c = h[0], l = false; if ("{" === c) e = {}; else if ("[" === c) e = []; else { e = []; l = true; } for ( var b, d = [ e ], m = 1 - l, y = h.length; m = 0;) delete f[i[g]]; } return j.call(n, o, f); }; e = p({ "" : e }, ""); } return e; }; }();
为了让你的函数在IE中导入JSON2parsing器代码更好,IE默认不支持JSON.Stringify()
。
它可以在这里find
在IE中打开兼容性视图设置,并从“已添加到兼容性视图的网站”的列表框中删除本地主机。 它为我工作。
JQuery 2.x不再与IE 6-8兼容。 JQuery 2.0 beta 2发行说明
我知道主要问题是关于旧版本的JQuery,但是这对我造成了错误。 我安装了与JQuery 2.x API兼容的JQuery 1.x,并添加了以下检测代码:
<!--[if lt IE 9]> <script src="js/jquery-1.11.1.min.js"></script> <![endif]--> <!--[if gte IE 9]> <script src="js/jquery.min.js"></script> <![endif]-->