Internet Explorer 8中未定义JSON对象

key*_*red 70 html javascript json internet-explorer-8

目前我正在编写一个JavaScript文件并具有以下行:

var res = "JSON=" + JSON.stringify(result);
Run Code Online (Sandbox Code Playgroud)

结果正好在这一行之上.我遇到的问题是IE8(仅限IE8)向我报告JSON未定义.我不知道该怎么做,因为据我所知,IE8是一个实现JSON支持的浏览器.有谁知道可能会发生什么?

And*_*y E 117

通过使用首选方法,标准文档类型确保您实际上处于IE 8模式...

<!DOCTYPE html>
Run Code Online (Sandbox Code Playgroud)

...或不受欢迎的方法,X-UA-Compatible元标记/标题...

<meta http-equiv="X-UA-Compatible" content="IE=EDGE" />
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅定义文档兼容性.

  • 绝对值得检查这一点,因为可以触发compat模式而无需您实现它 - 打开开发人员工具(F12)并在工具栏中查看浏览器模式. (9认同)
  • 我放弃了这一行并检查了开发工具.绝对在IE8标准模式下运行. (2认同)
  • 最终我确实解决了这个问题.事实证明这不是这个但是IE7的兼容性将成为我必须要做的下一件事之一,你无疑已经把时间浪费了.谢谢! (2认同)

Che*_*hen 9

如果你已经在使用JQuery,使用jQuery.parseJSON为我解决了这个问题.


Ark*_*kt8 6

其他缺少doctype或错误doctype或html语法错误的事情将迫使IE使用与您期望的不同的文档模式.

我在测试文档中使用简单的""并且缺少TITLE标记作为HEAD标记的子项使window.JSON变得未定义.

请记住,最好根据浏览器版本测试资源.而且,如果您的用户可以使用IE来模拟文档模式,那么当本机未定义时,最好有一段代码来提供JSON.parse和JSON.stringify.