IE 7或Opera 10.01无法识别JSON2.js

时间:2009-12-28 12:43:58

标签: javascript ajax json

我有一个在Firefox 3.5.6中正常工作的页面,但在IE 7或Opera 10.01

中没有

我将json.org中的缩小版JSON2.js包含在head部分的脚本标记中。

在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调用的回调函数。

我在Opera中收到的错误消息是:

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);

在IE 7中我收到了错误

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 个答案:

答案 0 :(得分:2)

type="text.javascript"

我的歌剧和IE8没有显示警告

应该是

type="text/javascript"