标签:case jsonObj return 低版本 getConsoleFn 兼容 result console ie
ie8 不支持
console
JSON
解决
if (!window.JSON) { window.JSON = { parse: function (jsonStr) { return eval('(' + jsonStr + ')'); }, stringify: function (jsonObj) { var result = '', curVal; if (jsonObj === null) { return String(jsonObj); } switch (typeof jsonObj) { case 'number': case 'boolean': return String(jsonObj); case 'string': return '"' + jsonObj + '"'; case 'undefined': case 'function': return undefined; } switch (Object.prototype.toString.call(jsonObj)) { case '[object Array]': result += '['; for (var i = 0, len = jsonObj.length; i < len; i++) { curVal = JSON.stringify(jsonObj[i]); result += (curVal === undefined ? null : curVal) + ","; } if (result !== '[') { result = result.slice(0, -1); } result += ']'; return result; case '[object Date]': return '"' + (jsonObj.toJSON ? jsonObj.toJSON() : jsonObj.toString()) + '"'; case '[object RegExp]': return "{}"; case '[object Object]': result += '{'; for (i in jsonObj) { if (jsonObj.hasOwnProperty(i)) { curVal = JSON.stringify(jsonObj[i]); if (curVal !== undefined) { result += '"' + i + '":' + curVal + ','; } } } if (result !== '{') { result = result.slice(0, -1); } result += '}'; return result; case '[object String]': return '"' + jsonObj.toString() + '"'; case '[object Number]': case '[object Boolean]': return jsonObj.toString(); } } }; } // 兼容ie8 window._console = window.console;//将原始console对象缓存 window.console = (function (orgConsole) { return {//构造的新console对象 log: getConsoleFn("log"), debug: getConsoleFn("debug"), info: getConsoleFn("info"), warn: getConsoleFn("warn"), exception: getConsoleFn("exception"), assert: getConsoleFn("assert"), dir: getConsoleFn("dir"), dirxml: getConsoleFn("dirxml"), trace: getConsoleFn("trace"), group: getConsoleFn("group"), groupCollapsed: getConsoleFn("groupCollapsed"), groupEnd: getConsoleFn("groupEnd"), profile: getConsoleFn("profile"), profileEnd: getConsoleFn("profileEnd"), count: getConsoleFn("count"), clear: getConsoleFn("clear"), time: getConsoleFn("time"), timeEnd: getConsoleFn("timeEnd"), timeStamp: getConsoleFn("timeStamp"), table: getConsoleFn("table"), error: getConsoleFn("error"), memory: getConsoleFn("memory"), markTimeline: getConsoleFn("markTimeline"), timeline: getConsoleFn("timeline"), timelineEnd: getConsoleFn("timelineEnd") }; function getConsoleFn(name) { return function actionConsole() { if (typeof (orgConsole) !== "object") return; if (typeof (orgConsole[name]) !== "function") return;//判断原始console对象中是否含有此方法,若没有则直接返回 return orgConsole[name].apply(orgConsole, Array.prototype.slice.call(arguments));//调用原始函数 }; } }(window._console));
标签:case,jsonObj,return,低版本,getConsoleFn,兼容,result,console,ie 来源: https://www.cnblogs.com/tingying/p/15067074.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。