IE8 的 JSON 解析 Bug

作者:手气不错 发布时间:May 21, 2009 分类:JavaScript

使用 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. bigCat May 21st, 2009 at 04:48 pm #1
    bigCat

    距离前端开发又远了一步

  2. joyqi May 21st, 2009 at 09:33 pm #2
    joyqi

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

  3. 菜鸟dozy May 21st, 2009 at 10:55 pm #3
    菜鸟dozy

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

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

  4. 菜鸟dozy May 21st, 2009 at 10:58 pm #4
    菜鸟dozy

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

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

  5. wiLdGoose May 22nd, 2009 at 01:31 am #5
    wiLdGoose

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

  6. 明城 May 22nd, 2009 at 04:06 pm #6
    明城

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

  7. cocoa May 26th, 2009 at 07:22 pm #7
    cocoa

    学习了。。。

  8. lq May 27th, 2009 at 10:17 pm #8
    lq

    暂时还不会去使用ie8
    ~

  9. » 前端开发大众手册前端开发之家 June 23rd, 2009 at 04:50 pm #9
    » 前端开发大众手册前端开发之家

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

  10. 海绵网  » Blog Archive   » 学无止境的CSS(xHTML+CSS技巧教程资源大全)

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

  11. 蹲乐 UED  » Blog Archive   » IE8 下JSON解析的BUG

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

  12. infinte December 31st, 2009 at 06:36 pm #12
    infinte

    这不是bug,是ECMA v5的规定

Yahoo 统计