eval()用法 vb的数据以字符串传递给JS,如何处理?2

getRecodAll.asp

---------------------------------------------------------------------

<!--#include file="conn.asp"-->

<% dim rs,sql

Set rs = server.CreateObject("adodb.recordset")

sql="select * from book order by Id desc"

rs.Open sql,conn,3,3

dim i,tempStr,resultStr

for i = 1 to rs.RecordCount

if rs.EOF or rs.BOF then

exit for

end if

tempStr="{qq:"""&encode(rs("qq"))&""",sex:"""&encode(rs("sex"))&""",content:"""&encode(rs("content"))&"""},"//这里以字符串的形式,返回给了JS脚本处理

rs.MoveNext

resultStr = resultStr + tempStr

next

if resultStr<>"" then

resultStr = left(resultStr,len(resultStr)-1)

else

resultStr = "0"

end if

response.Write(resultStr)

%>

ajax.asp

--------------------------------------------------------------

function addMessage(){//更新留言,实质上是重新去服务器提取第一页的留言

// if(/LastDate=([^;]+)/.test(document.cookie)){ //删除cookie中记录的时间,模拟第一次浏览,防止重复更新留言

// var exp=new Date();

// exp.setTime(exp.getTime()-1);

// document.cookie="LastDate="+RegExp.$1+";expires="+exp.toGMTString();

// }

//getList(1); //更新cookie后更新第一页的留言,//此处是 分页显示,这里先不用

getList();

}

function getList(){

getObj("get_msg").innerHTML = "留言加载中....请稍后!";

var xmlHttp = XMLHttpRequest();

xmlHttp.open("get","getRecordAll.asp",true);

xmlHttp.onreadystatechange = function(){

if(xmlHttp.readyState==4){

if(xmlHttp.status==200){

writeBookArr(xmlHttp.responseText);

//alert(xmlHttp.responseText);

//getObj("get_msg").innerHTML=xmlHttp.responseText;

}else{

alert("获取留言失败!网页错误:"+xmlHttp.status);

}//200

}//=4

};

xmlHttp.send(null);

}

function writeBookArr(Str){ //输出服务器返回的留言内容

if(Str!=0){

//alert(Str);

var i =0;

var bookList=eval("new Array("+Str+")");//先把Str替换为传过来的字符串{},{},然后eval进行执行eval(new Array({},{},{})),然后每个bookList[i]都是一个对象.此处不可以这样写eval(new Array(Str)),也不可以new Array(Str)。

// alert(bookList[i].qq + bookList[i].sex + bookList[i].content);

var allStr="";

for(var i=0;i<bookList.length;i++){

allStr+=makBookStr(bookList[i].qq,bookList[i].sex,bookList[i].content);

}

}else{ //返回0说明没有留言

allStr="<div class=\"tips\">暂时还没有留言!</div>"

}

getObj("get_msg").innerHTML=allStr;

}

function makBookStr(qq,sex,content){ //创建一条留言的文本串

var tempStr='<div class="note">\

<div ><div ><strong>QQ:</strong>'+unescape(qq)+'</div>\

<div ><strong>性别:</strong>'+sex+'</div>\

<div >\

<strong>留言内容:</strong>\

<p>'+unescape(content)+'</p>\

</div>\

</div>';

return tempStr;

}