JSON.js

转载:http://blog.csdn.net/hingwu/archive/2007/04/29/1591624.aspx

Error:too much recursion 收藏

<script type="text/javascript"><!-- document.body.oncopy = function () { if (window.clipboardData) { setTimeout(function () { var text = clipboardData.getData("text"); if (text && text.length > 300) { text = text + "\r\n\n本文来自CSDN博客,转载请标明出处:" + location.href; clipboardData.setData("text", text); } }, 100); } } // --></script><script type="text/javascript"><!-- function StorePage() { d = document; t = d.selection ? (d.selection.type != 'None' ? d.selection.createRange().text : '') : (d.getSelection ? d.getSelection() : ''); void (keyit = window.open('http://www.365key.com/storeit.aspx?t=' + escape(d.title) + '&u=' + escape(d.location.href) + '&c=' + escape(t), 'keyit', 'scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes')); keyit.focus(); } // --></script>

        关于JSON的好处就不说了,反正我是喜欢上它了,也开始在自己的项目中使用JSON,前两天刚到官网下载了最新的 json.js文件,结果我的页面一打开就报错:too much recursion!在IE和FF中都是如此,刚开始以为是自己的代码写错了,后来仔细看看才发现应该是json.js这个文件有问题,于是照例 Google,找到不少资料,不少开发者在使用最新版的json.js文件时都出现了这个问题。

I started off by using the JSON js code, however  this  code is unusable  for   1  major reason  -  it adds a method to array ' s/objects, resulting in the fact that foreach() always returns an additional member. (breaking almost all the existing javascript code!) - I also ran into problems with recursion in firefox (but I think thats due to me forgetting to add the String.prototype method.)

       JSON扩展了Javascript的基本对象,提供了toJSONString()方法,而JQuery也扩展了基本对象,提供了一些方法,有可能是这 些方法之间存在冲突,无意中发现有个开发者提到他在用旧版的json.js时并没有碰到这种情况,只是在更新了版本后才出来这种问题的,所以我将 json.js替换成比较旧点的版本,结果那个烦人的too many recursion再没出现了。

        思考:国内用JSON和JQuery的人也不少了,还有不少实例教我们怎么用这个toJSONString()方法的,可为什么就没有人提到这个问题呢? 难道这些实例都只是一个简单的翻译,就没有人自己去实践过?不解。

        附:旧版JSON的下载地址如下

Site:
http://web.archive.org/web/20060208035938/http://www.crockford.com/JSON/js.html

JS:
http://web.archive.org/web/20060208035938/http://www.crockford.com/JSON/json.js

 

 

 

z_j  发表于Thursday, July 19, 2007 3:25:30 PM   IP:124.249.230.* 举 报 回复
把 第156行处的 if (typeof v.toJSONString === 'function') {
改成  if (typeof v.toJSONString == 'function') {
即把 === 改成 == 就可以了
luobo525  发 表于Saturday, February 23, 2008 8:10:12 PM   IP:60.27.95.* 举 报 回复
这个问题苦恼了一天,太好了!哈哈!!


<a href="http://dl.iteye.com/upload/attachment/503968/e338736e-f9fe-305a-b644-5c63c3613db2.png">下载后改下扩展名[json.js] </a>

 

你可能感兴趣的:(JavaScript,jquery,json,Web,IE)