2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > ajax-post-json-xhr向php获取请求后如何避免重写覆盖当前页面

ajax-post-json-xhr向php获取请求后如何避免重写覆盖当前页面

时间:2021-10-17 23:21:46

相关推荐

ajax-post-json-xhr向php获取请求后如何避免重写覆盖当前页面

后端开发|php教程

xhr,php,ajax-post-json-php

后端开发-php教程

如题,用js向php发送一个请求并加载响应到当前页面的时候,如何避免重写是覆盖当前页面;

pc app源码,ubuntu更新音频,tomcat8的umask,养殖技巧爬虫,php添加到购物车,长沙口碑好的seo怎么样lzw

具体情况是这样的:

js:

c 博客网站源码,ubuntu挂载加密硬盘,tomcat7.55下载,爬虫实战,制造生产管理php源码,seo词库推广lzw

var navLst = {};var reqInfo = {};reqInfo[ eqNav] = true;reqInfo[ eqSin] = qtrfss; //more limt options would be addedvar 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( eqSent=+reqSent);

/themes/ticket/model/echoNav.php返回的是一个数组字符串化的json;

易语言单机cf源码,ubuntu如何取消托盘,tomcat解war包卡住,app 爬虫 加密,php两个变量,seo风口lzw

然后获取到了menlist,重写的时候整个页面只剩下menulist了。。。

listmenu:

function listMenu(menuLst){

//var menuLst = [Sci-Fi,home,wiki];//menu lst should come from phpvar nav = \; var navIE = \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ + \+ \;var navStyle = \;//stylesheets urlnav +=navIE;nav +=navStyle;nav +=\;document.write(nav);var navUl = document.createElement(ul); navUl.id = onav_bar;var navLst = \for (var i=0 ;i <= menuLst.length - 1; i++) { var navLi = document.createElement(li); var achor = document.createElement(a); if(i == 0){ navLi.className = onav_top onav_logo; achor.setAttribute(href,#); var spanX = document.createElement(span); spanX.className = onav_yellow; spanX.innerHTML = Sci-Fi; achor.appendChild(spanX); var spanY = document.createElement(span); spanY.className = onav_white; spanY.innerHTML = .Net; achor.appendChild(spanY); }else{ navLi.className = onav_top; achor.setAttribute(href,#); achor.setAttribute( arget,\_blank); achor.setAttribute( itle,menuLst[i]); achor.innerHTML = menuLst[i]; } navLi.appendChild(achor); navUl.appendChild(navLi);};var navDiv = document.getElementById(onav_wrapper); navDiv.appendChild(navUl);//need to be briefvar oAhor = document.getElementById(onav_bar).getElementsByTagName(a);for (i=0; i<oAhor.length; i++) { var testAttr = oAhor[i].parentNode.getAttribute(class); if (oAhor[i].href == window.location) { if (testAttr === null) { oAhor[i].parentNode.setAttribute(class, onav_active); } else{ oAhor[i].parentNode.setAttribute(class, testAttr + onav_active); } }}}

解决方案:

document.write(nav);, DOM加载完成后再用document.write()方法会覆盖以前内容。测试一下,把其中函数中的方法换成document.write(\)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。