我有一个在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}
但没有换行符。
答案 0 :(得分:2)
带
type="text.javascript"
我的歌剧和IE8没有显示警告
应该是
type="text/javascript"