利用ajax刷新div 结果整个页面都替换了 ? 50
首先页面载入的时候是对的,代码如下:<script>load_desktop()document.all("shortcut_bar").innerHTML="<%=Qu...
首先 页面载入的时候是对的,代码如下:
<script>load_desktop()
document.all("shortcut_bar").innerHTML="<%=Quick_ico%>"
/*上面的Quick_ico为动态数据,(目的是动态更改桌面 的图标)结果为:<a onclick=run(28)>采</a>|<a onclick=run(4)>销</a>|<a onclick=run(5)>库</a>|<a onclick=run(6)>财</a>|<a onclick=run(2)>生</a>|<a onclick=run(31)>基</a>|<a onclick=run(33)>期</a>|<a onclick=run(32)>系</a>|<a onclick=run(46)>开</a>|*/
document.all("desktop").innerHTML=<%=Desk_ico%>
</script>
而包含的load_desktop函数如下:
function load_desktop(){
//加载桌面
document.write("<div id='desktop' style='position: absolute;left:0;bottom:30;width:8000;height:10000;z-index:-1' onMouseDown=GradientClose();updown();hide('first')></div>")}
以下为运行的核心函数:
//ajax更换桌面
//ajax核心执行方法
function run(value){
//判断浏览器
document.getElementById("desktop").innerHTML=""
if(window.XMLHttpRequset){
xmlHttp = new XMLHttpRequest();
}else if(window.ActiveXObject){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
//核心代码
//var value = document.getElementById("id").value;
var URL = "changedask.asp?id="+value;
xmlHttp.open("GET",URL,true);
xmlHttp.onreadystatechange=callback;
xmlHttp.send(null);
}
//回调函数
function callback(){
if(xmlHttp.readyState == 4){
if(xmlHttp.status == 200){
var v = xmlHttp.responseText;
v=v.replace("</script>", "")
v=v.replace("<script>", "")
v=eval(v)
//document.all("desktop").innerHTML=v;
//v="<script>"+v+"</ script>"
alert(v)
document.getElementById("desktop").innerHTML =V;
}
}
}
/******以下为changedask.asp的代码内容:
<!-- #include file="conn.asp" -->
<!-- #include file="inc/update.asp" -->
<%
response.Charset="gb2312"
add_DesktopIco request("id"),"中栏?deskdop"
%>
<%=Desk_ico%>
因为是动态的数据:
当request("id")为32时
desk_ico为:
<script>
</script>
ico('DesktopIco5','0','250','showpop("备份操作","./system/beifen.asp",400,300)','备份操作5','备份操作');
ico('DesktopIco4','0','200','pop("windows/index.htm")','修改密码4','修改密码');
ico('DesktopIco3','0','150','showpop("用户管理","./system/mima.asp",300,300)','用户管理3','用户管理');
ico('DesktopIco2','0','100','showpop("模块设置","./system/menu.asp",700,400)','模块设置2','模块设置');
ico('DesktopIco1','0','50','showpop("系统设置","./system/config.asp",500,400)','系统设置1','系统设置');
所以前面js callback函数有个:
var v = xmlHttp.responseText;
v=v.replace("</script>", "")
v=v.replace("<script>", "")
现在的问题是:一切正常,alert也能弹出数据,就是替换document.getElementById("desktop").innerHTML 的时候 整个页面都替换了 从头道尾都替换了 ,真不知道哪里出错了 望高手指点?
QQ:359282347 在线等待!!! 展开
<script>load_desktop()
document.all("shortcut_bar").innerHTML="<%=Quick_ico%>"
/*上面的Quick_ico为动态数据,(目的是动态更改桌面 的图标)结果为:<a onclick=run(28)>采</a>|<a onclick=run(4)>销</a>|<a onclick=run(5)>库</a>|<a onclick=run(6)>财</a>|<a onclick=run(2)>生</a>|<a onclick=run(31)>基</a>|<a onclick=run(33)>期</a>|<a onclick=run(32)>系</a>|<a onclick=run(46)>开</a>|*/
document.all("desktop").innerHTML=<%=Desk_ico%>
</script>
而包含的load_desktop函数如下:
function load_desktop(){
//加载桌面
document.write("<div id='desktop' style='position: absolute;left:0;bottom:30;width:8000;height:10000;z-index:-1' onMouseDown=GradientClose();updown();hide('first')></div>")}
以下为运行的核心函数:
//ajax更换桌面
//ajax核心执行方法
function run(value){
//判断浏览器
document.getElementById("desktop").innerHTML=""
if(window.XMLHttpRequset){
xmlHttp = new XMLHttpRequest();
}else if(window.ActiveXObject){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
//核心代码
//var value = document.getElementById("id").value;
var URL = "changedask.asp?id="+value;
xmlHttp.open("GET",URL,true);
xmlHttp.onreadystatechange=callback;
xmlHttp.send(null);
}
//回调函数
function callback(){
if(xmlHttp.readyState == 4){
if(xmlHttp.status == 200){
var v = xmlHttp.responseText;
v=v.replace("</script>", "")
v=v.replace("<script>", "")
v=eval(v)
//document.all("desktop").innerHTML=v;
//v="<script>"+v+"</ script>"
alert(v)
document.getElementById("desktop").innerHTML =V;
}
}
}
/******以下为changedask.asp的代码内容:
<!-- #include file="conn.asp" -->
<!-- #include file="inc/update.asp" -->
<%
response.Charset="gb2312"
add_DesktopIco request("id"),"中栏?deskdop"
%>
<%=Desk_ico%>
因为是动态的数据:
当request("id")为32时
desk_ico为:
<script>
</script>
ico('DesktopIco5','0','250','showpop("备份操作","./system/beifen.asp",400,300)','备份操作5','备份操作');
ico('DesktopIco4','0','200','pop("windows/index.htm")','修改密码4','修改密码');
ico('DesktopIco3','0','150','showpop("用户管理","./system/mima.asp",300,300)','用户管理3','用户管理');
ico('DesktopIco2','0','100','showpop("模块设置","./system/menu.asp",700,400)','模块设置2','模块设置');
ico('DesktopIco1','0','50','showpop("系统设置","./system/config.asp",500,400)','系统设置1','系统设置');
所以前面js callback函数有个:
var v = xmlHttp.responseText;
v=v.replace("</script>", "")
v=v.replace("<script>", "")
现在的问题是:一切正常,alert也能弹出数据,就是替换document.getElementById("desktop").innerHTML 的时候 整个页面都替换了 从头道尾都替换了 ,真不知道哪里出错了 望高手指点?
QQ:359282347 在线等待!!! 展开
1个回答
展开全部
document.all("desktop").innerHTML=<%=Desk_ico%>
这里应该是少引号了,应该是:
document.all("desktop").innerHTML="<%=Desk_ico%>"
下面这段:
v=v.replace("</script>", "")
v=v.replace("<script>", "")
v=eval(v)
//document.all("desktop").innerHTML=v;
//v="<script>"+v+"</ script>"
alert(v)
一是少了不少分号;
二是v=v.replace("</script>", "")
要转意,写成:
v=v.replace("<\/script>", "");
还有Ajax建议用jquery来完成,代码简单,而且不需要考虑浏览器兼容问题。写成下面的形式:
function run(value){
$.get("changedask.asp",{"id":value},callback,"html");
}
一句搞定你这一大段
这里应该是少引号了,应该是:
document.all("desktop").innerHTML="<%=Desk_ico%>"
下面这段:
v=v.replace("</script>", "")
v=v.replace("<script>", "")
v=eval(v)
//document.all("desktop").innerHTML=v;
//v="<script>"+v+"</ script>"
alert(v)
一是少了不少分号;
二是v=v.replace("</script>", "")
要转意,写成:
v=v.replace("<\/script>", "");
还有Ajax建议用jquery来完成,代码简单,而且不需要考虑浏览器兼容问题。写成下面的形式:
function run(value){
$.get("changedask.asp",{"id":value},callback,"html");
}
一句搞定你这一大段
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询