ajax innerHTML调用js问题 怎么解决?

nhr 2010-06-27 03:15:04
这是JS

re = /<script.+?>(.+)<\/script>/i;
if(re.test(xmlHttp.responseText)) {
//alert("ok")
getObject(requestType).innerHTML=eval(xmlHttp.responseText.replace(re, "$1"));
}else
{
getObject(requestType).innerHTML = xmlHttp.responseText;
}



这是我返回的JS

Response.Write "<script>var online= new Array();</script"+">"
Response.Write "<script src='http://webpresence.qq.com/getonline?Type=1&"&bxinxi(5)&":'></script"+">"
Response.Write "<script>if(online[0]==0){alert('sss');}else{document.write('ok');}</script"+">"


因为是innerHTML所以JS失效了....要怎么解决.用eval好像不行啊.
...全文
513 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hoojo 2010-06-28
  • 打赏
  • 举报
回复

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>innerHTML.html</title>

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<script type="text/javascript">
window.onload = function () {
document.getElementById("show").innerHTML = "<script>alert('sssaabb');<\/script>";
};
</script>

</head>

<body>
<div id="show"></div>
</body>
</html>
没有结果,可见innerHTML不能放入出现script这种关键字。
解决方法就是返回动态的数据在js脚本中使用,不能在服务器端返回js脚本在innerHTML中使用。
victor_woo 2010-06-27
  • 打赏
  • 举报
回复
ajax获取的内容如果和js的函数调用有关,建议将js放在主调页面上;

不可能每个ajax获取的返回内容都有自己独特的js方法需要处理的;

如果需要response的内容作为参数,建议使用xml来处理
nhr 2010-06-27
  • 打赏
  • 举报
回复
能说详细一点吗?呵呵....就是我这问题应该怎么解决....
zoujp_xyz 2010-06-27
  • 打赏
  • 举报
回复
innerHTML的用法:
举例:document.getElementBy("").dom.innerHTML="";
eval():可以将一个字符串转化为一个对象(注意这个字符串是一个对象式的字符串"{name:""}")

52,787

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧