代码之家  ›  专栏  ›  技术社区  ›  Matt Ellen Bipin Vayalu

IE 7或Opera 10.01未识别JSON2.js

  •  3
  • Matt Ellen Bipin Vayalu  · 技术社区  · 16 年前

    我有一个在Firefox 3.5.6中运行良好的页面,但在IE7或Opera 10.01中却没有

    我将包括来自的JSON2.js的缩小版本 json.org

    在Firefox中,数据被解析成一个对象。Opera和IE都抛出错误,说他们找不到JSON对象。

    如何修复javascript,以便IE和Opera都能找到JSON对象?

    编辑
    脚本标记看起来像: <script type="text.javascript" language="javascript" src="script/json2min.js"></script>

    代码类似于

    function readMessageEnd()
    {
        if(this.readyState == 4)
        {
            var result = this.responseText;
            var messageData = JSON.parse(result);
            ... do stuff with messageData;
        }
    }
    

    readMessageEnd() 是异步AJAX调用的回调函数。

    JavaScript - http://mojohub/ideaweb/messages.php
    Unknown thread
    Error:
    name: ReferenceError
    message: Statement on line 188: Undefined variable: JSON
    stacktrace: n/a; see  opera:config#UserPrefs|Exceptions Have Stacktrace
    

    第188行是 var messageData = JSON.parse(result);

    Line: 189
    Char: 4
    Error: 'JSON' is undefined
    Code: 0
    URL: http://mojohub/ideaweb/messages.php
    

    中的数据 result 是

    {"from_name":"matt"
    ,"subject":"testing stuff"
    ,"body":"Yo. I'm testing how this system works.<br \/>\n<br />\nInit."
    ,"private_message_id":"2"
    ,"message_status":"Read"
    ,"avatar_url":"http:\/\/url_goes_here"
    ,"status_update":false}
    

    但是没有断线。

    1 回复  |  直到 16 年前
        1
  •  2
  •   YOU    16 年前

    type="text.javascript"
    

    我的opera和IE8没有表现出警觉

    type="text/javascript"