eval方法:解决:将msgsrv.php输出补充完整:
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"----^
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必须完整.但这样的用法把对象的声明语句扔在远程,维护不方便.这么教条干什么,宽容点多好.....
冷却几天
谁谁


June 14, 2007 23:30 | by 





