$.parseJSON 在 Internet Explorer 10 中无法工作

4

以下代码中,$.parseJSON在Firefox、Chrome和Safari上运行良好。然而,在Internet Explorer 10中,该脚本无法生成有效的对象。

这是jsFiddle: http://jsfiddle.net/gahathat/sq6Lb/

这是js代码:

string = '{"result":"success"}';
$('#json_string').text(string);
item = $.parseJSON(string);
$('#json_result').text(item.result);

有没有一种可以解决这个错误的Internet Explorer的解决方法?

你使用的是哪个版本的jQuery? - Steven V
你只是在jsFiddle上尝试过吗?我从IE9中得到的错误与iframes有关。 - sabof
我在我的域上也遇到了相同的错误。 - ams
当我打开这个fiddle时,在IE10控制台中看到错误'$'未定义 - Mooseman
我已经尝试过jQuery 1.9.1和2.0.2。 - ams
1个回答

12

这应该可以运行:

$(function() {
    var string = '{"result":"success"}';

    $('#json_string').text(string);

    var item = $.parseJSON(string);
    $('#json_result').text(item.result);
});

IE有一个名为'item'的全局对象,该对象无法被覆盖。


非常感谢!我试图弄清楚那个问题,简直要疯了。 - ams
哦,我的天啊,这是一个问题。只需要加1。 - Sina R.
3
伙计,我从来没有想到过这个!这只证明了 IE 真的是多么烂!+1 - tftd
@tftd:浏览器有不可写的全局变量,或者通常会干扰其他代码的全局变量并不罕见。因此,IE在这里并不是问题所在。 - user2437417
@CrazyTrain 是的,我知道,但这个真的很奇怪,至少对我来说... :) - tftd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接