2011-11-30 186 views
34

只有在兼容模式下,IE 9 SCRIPT5009: 'JSON' is undefined中出现以下错误。导致此错误的行是SCRIPT5009:'JSON'未定义

JSON.stringify(togObj.Answers) 

中不会发生,即(非兼容模式)错误,Chrome或Firefox。 任何想法这里发生了什么?

+3

看来'JSON'对象没有被定义。查看用于添加JSON支持的http://json.org/js.html。 –

+0

谢谢你,这很容易! –

回答

23

JSON是not available in compatibility mode IE:怪癖,因特网浏览器6级的标准,Internet Explorer 7的标准:

在以下文档模式不支持。

由于您不应该使用(或更糟的是,上reyling)首先兼容模式,则应该通过添加有效的文档类型切换IE到标准模式。

+1

我不小心打开了兼容模式并出现错误。 +1指导我。 – vbocan

+0

请注意,IE内联框架“继承”父框架的文档模式。因此,如果您可能会嵌入到您无法控制的网页中,那么如果可能需要JSON库远远超出IE7。 – cmc

-1

如果您在页面上使用jQuery库,则可以使用$.parseJSON

+0

不起作用,因为jQuery使用JSON。解析 –

+0

@FilipCornelissen:http://api.jquery.com/jQuery.parseJSON/它需要1.4.1的jQuery版本。另外,验证你的json是否正确。尝试将一个演示json字符串传递给此函数并进行验证。来自同一页面的 – iMatoria

+0

:“在浏览器提供JSON.parse的本地实现的地方,jQuery使用它来解析字符串。”和(简化)来自http://code.jquery.com/jquery-latest.js:'parseJSON:function(data){return window.JSON.parse(data); }”。 结论,在IE8或更低版本中不起作用。 –

0

你需要包括json2.js

看到json2 inclusion

了解更多详情。有些情况下我们必须处理客户使用IE7标准的情况。所以我们的代码也不得不迎合这种情况。我们的零售网站被数百个使用IE7标准的客户访问。包括json2解决了这个问题

2

我已经完成LOCAL Jquery添加.NEt 2.0代码测试,它工作正常没有任何问题。 但是,将代码迁移到IIS v6服务器后,从相同的IE浏览器访问,然后问题出现“JSON”未定义。 阅读完此建议后,将文件json2.js下载并添加到源代码中。

<script type="text/javascript" src="json2.js"></script> 

所有工作都很好。

好谢谢。