eval方法:
eval(codeString);
开始使用的代码:msgsrv.php输出:
{"msgs":[{"id":7,"smile":4,"title":"想你了","info":"2007年5月2日 BY A","message":'怎么不给我打电话啊?',"reply":'你那破电话我就没打通过。知道我电话吧?你就不能打给我。。。'},{"id":6,"smile":2,"title":"来看看","info":"2007年5月1日 BY D","message":'还可以。',"reply":''},{"id":3,"smile":1,"title":"hello~","info":"2007年5月1日 BY B","message":'hello,nice site!',"reply":'thx~its just for traning.'}]}
getmsgcallback():
......var message=xmlHttp.responseText;......var rspobj=eval('('+message+')');alert(rsobj.msgs[2].id);
在ie6,ie7,Firefox2执行正常,在Opera9中发生一个语法错误:
引用
message: Statement on line 224: Syntax error in call to eval: line 1 : ({"msgs":[{"id":7,"smile":4,"title":"想你了","info"----^
解决:将msgsrv.php输出补充完整:
var rspobj={"msgs":[{"id":7,"smile":4,"title":"想你了","info":"2007年5月2日 BY A","message":'怎么不给我打电话啊?',"reply":'你那破电话我就没打通过。知道我电话吧?你就不能打给我。。。'},{"id":6,"smile":2,"title":"来看看","info":"2007年5月1日 BY D","message":'还可以。',"reply":''},{"id":3,"smile":1,"title":"hello~","info":"2007年5月1日 BY B","message":'hello,nice site!',"reply":'thx~its just for traning.'}]};
getmsgcallback():
......var message=xmlHttp.responseText;......eval(message);alert(rsobj.msgs[2].id);
ok!ie6,ie7,Firefox2,Opera9中均正常.经验:Opera中js使用eval方法时eval的codeString必须完整.但这样的用法把对象的声明语句扔在远程,维护不方便.这么教条干什么,宽容点多好.....
学习笔记 | 评论(0) | 引用(0) | 阅读(1516)
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]