IE8 的 JSON 解析 BugMay 21, 2009

使用 IE8 时发现其原生的 JSON 解析器存在 Bug,让我们先用 IE8 打开 DEMO 页面体验下。

http://lab.gracecode.com/bug/ie8-json-stringify.html

主要的问题就是 IE8 的 JSON 组件对空的表单输入控件(input、textarea)的值检测存在类型检测错误,它会认为空的表单值为 NULL,进而造成 JSON 解析错误。

IE8 会将 input_value 为空(没有任何输入)的情况下,解析成

{"value":"null"}

而实际的预期应该是

{"value":""}

所以如果你不幸要针对 IE8 Coding(这是不可避免的)而且胆子大想尝试其原生的 JSON 解析组件时,最好先保证类型是预期的。例如上述的 Bug,在修复之前只能使用

JSON.stringify({value: input_value + ''});

这样的方式。

再次赞叹 IE 系列给咱前端创造的那么多的就业机会。

-- Update --

找了下微软官方,发现这个 Bug 早有人提交,查看详细

已有 12 条评论

  1. 距离前端开发又远了一步

  2. joyqi joyqi

    在ietester里的json解析也有很多奇妙的现象

  3. 菜鸟dozy 菜鸟dozy

    我想问你个程序设计问题 :
    一个x*y的数 如何生成任意排列的x行y列数
    比如9 -》 3 8 6
    1 5 9
    4 2 7

    我是菜鸟刚学了点HTML,但是我觉得必须尽快弄懂上述问题,能否帮我写写看,将非常感谢。

  4. 菜鸟dozy 菜鸟dozy

    上面数字是 方方正正的 对齐的
    3 8 6
    1 5 9
    4 2 7
    ——>推广到X*Y

    我今天刚刚学点计算机类的,明天打算继续学习其他的,比如Java.所以你写点code,我应该也看得懂,大侠。

  5. wiLdGoose wiLdGoose

    老兄啊,帮忙打听一下 Windows XP SP3 + IE8 在导入支付宝数字证书的时候出现的BUG,什么时候能搞定啊。

  6. @dozy 根据你的要求我用 PHP 写了份示例代码,你可以看下 http://snipt.org/ZW

  7. 学习了。。。

  8. lq lq

    暂时还不会去使用ie8
    ~

  9. [...]移动版本的 Apache + PHP —— 灰常灰常好用,灰常灰常移动,见明城的说明[...]

  10. [...]target=_blank>IE6方程式[...]

  11. [...]转自:明城BLOG,感谢明城的发现与共享![...]

  12. 这不是bug,是ECMA v5的规定

Yahoo 统计