如题,用js向php发送一个请求并加载响应到当前页面的时候,如何避免重写是覆盖当前页面;
具体情况是这样的:
js:
var navLst = {};
var reqInfo = {};
reqInfo['reqNav'] = true;
reqInfo['reqSin'] = 'qtrfss';
//more limt options would be added
var reqSent= JSON.stringify(reqInfo);
var xhr = null;
if(window.XMLHttpRequest){
xhr = new XMLHttpRequest();
}else{
xhr = ActiveXObject('Microsoft.XMLHttp');
}
xhr.open('POST', '/themes/ticket/model/echoNav.php',true);
xhr.onreadystatechange=function(){
if(xhr.readyState == 4) {
if(xhr.status == 200) {
try{
var resp = eval('('+ xhr.responseText +')');
listMenu(resp);
}catch(e){
listMenu(e);
}
} else {
//undo
}
}
};
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.send('reqSent='+reqSent);
/themes/ticket/model/echoNav.php返回的是一个数组字符串化的json;
然后获取到了menlist,重写的时候整个页面只剩下menulist了。。。
listmenu:
function listMenu(menuLst){
//var menuLst = ['Sci-Fi','home','wiki'];//menu lst should come from php
var nav = '';
var navIE = ''+
''+
''+
''+
' '+
'';
document.write(nav);
var navUl = document.createElement('ul');
navUl.id = 'onav_bar';
var navLst = '
}
烦请大神帮忙解答一下;
新手!!
多谢啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
是
document.write(nav);, DOM加载完成后再用document.write()方法会覆盖以前内容。测试一下,把其中函数中的方法换成document.write('')试试看换jquery append()方法试一下