Yo tengo el mismo problema, soy nuevo usando javascript, y estoy usando el llamarasincrono para cargar paginas en un div mi problema es que al querer volver y hacer el llamado a llamarasincrono desde la pagina cargada en el div no me funciona... Llevaba dias sin saber porque, pero ahora que lo veo por aca me di cuenta, mi aplicacion esta hecha en jsp y necesito porder seguir recargando la pagina en ese div desde la pagina que se encuentre cargada actualmente.
El llamarasincrono que uso tiene una pequeña modificacion para hacer que la pagina que ya se encuentra cargada en el div llame a otras y se siga cargando ahi mismo despues de enviar el formulario.
aca les doy el codigo del llamarasincrono que uso.
Código:
Les pido que sean pacientes conmigo soy nuevo en esto y llevo buscando la solucion hace dias, trate de acoplar lo que uds hicieron a mi llamarasincrono y no lo consigo ps ya nisiquiera me carga en el div.function llamarasincronoInterno(url,id_contenedor,formulario){ var pagina_requerida = false if (window.XMLHttpRequest) {// Si es Mozilla, Safari etc pagina_requerida = new XMLHttpRequest() } else if (window.ActiveXObject){ // pero si es IE try { pagina_requerida = new ActiveXObject("Msxml2.XMLHTTP") } catch (e){ // en caso que sea una versi�n antigua try{ pagina_requerida = new ActiveXObject("Microsoft.XMLHTTP") } catch (e){} } } else return false pagina_requerida.onreadystatechange=function(){ // funci�n de respuesta cargarpagina(pagina_requerida, id_contenedor) } var datos='?'+document.getElementById(formulario).elements[0].name+'='+document.getElementById(formulario).elements[0].value; for(var i = 1; i < document.getElementById(formulario).elements.length; i++) { datos = datos+'&'+document.getElementById(formulario).elements[i].name datos = datos+'='+document.getElementById(formulario).elements[i].value } pagina_requerida.open('GET',url+datos,true) // asignamos los m�todos open y send pagina_requerida.send(null) } // todo es correcto y ha llegado el momento de poner la informaci�n requerida // en su sitio en la pagina xhtml function cargarpagina(pagina_requerida, id_contenedor){ var TEXTO = false if (pagina_requerida.readyState==1){ document.getElementById(id_contenedor).innerHTML = "cargando... y una imagen =P "; } if (pagina_requerida.readyState == 4 && (pagina_requerida.status==200 || window.location.href.indexOf("http")==-1)){ TEXTO=rescatar_script(pagina_requerida.responseText) document.getElementById(id_contenedor).innerHTML=TEXTO } } function validar(formulario){ for(var i = 1; i < document.getElementById(formulario).elements.length; i++) { if (document.getElementById(formulario).elements[i].value==null||(/^\s+$/.test(document.getElementById(formulario).elements[i].value))||document.getElementById(formulario).elements[i].value.length==0){ return false; } } return true; } function rescatar_script(texto) { var p1=texto.split("<scrip",2) if (p1[1]) { var p2=p1[1].split(">",2) var p3=p2[1].split("</script",2) if (p3[0] && p3[0]!='') eval(p3[0]) texto=p1[0]+p3[1] texto=rescatar_script(texto) } return texto }
aca les pego la forma en que hago el llamado del llamarasincrono
Código:
Se que la forma en que manejo las variables dentro de mi jsp no es lo que se recomienda pero es la primera vez que manejo esto y lo he hecho solo.... y espero que para mis proximas aplicaciones lo haga correctamente<form name="form3" method="post" id ="form3" action="javascript:llamarasincronoInterno('ControladorServlet','contenidos','form3')">
Gracias a por su pronta colaboracion