Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Usar Script JS en llamado Ajax asp

Estas en el tema de Usar Script JS en llamado Ajax asp en el foro de Frameworks JS en Foros del Web. Hola, tengo un script para usar AJAX que es un script asi: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original function GetXmlHttpObject ( handler ) { ...
  #1 (permalink)  
Antiguo 29/08/2010, 21:18
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 4 meses
Puntos: 16
Usar Script JS en llamado Ajax asp

Hola, tengo un script para usar AJAX que es un script asi:
Código Javascript:
Ver original
  1. function GetXmlHttpObject(handler)
  2. {
  3.    var objXMLHttp=null
  4.    if (window.XMLHttpRequest)
  5.    {
  6.        objXMLHttp=new XMLHttpRequest()
  7.    }
  8.    else if (window.ActiveXObject)
  9.    {
  10.        objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
  11.    }
  12.    return objXMLHttp
  13. }
  14.  
  15. function stateChanged(proceso, caja)
  16. {
  17.    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
  18.    {
  19. //    document.getElementById(caja).innerHTML= xmlHttp.responseText;
  20.     document.getElementById(caja).innerHTML=proceso
  21.    }
  22.    else {
  23.      //alert(xmlHttp.status);
  24.    }
  25. }
  26.  
  27.  
  28. // Will populate data based on input
  29. function htmlData(url, caja, qStr)
  30. {
  31.    if (url.length==0)
  32.    {
  33.        document.getElementById(caja).innerHTML="";
  34.        return;
  35.    }
  36.    xmlHttp=GetXmlHttpObject()
  37.    if (xmlHttp==null)
  38.    {
  39.        alert ("Su navegador no soporta este tipo de procedimiento, por favor actualice el mismo.");
  40.        return;
  41.    }
  42.    
  43.    url=url+"?"+qStr;
  44.    url=url+"&sid="+Math.random();
  45. //   xmlHttp.onreadystatechange=stateChanged;
  46.    xmlHttp.onreadystatechange=function() { stateChanged( xmlHttp.responseText, caja); }  
  47.    
  48.    xmlHttp.open("GET",url,true) ;
  49.    xmlHttp.send(null);
  50. }

Y lo llamo asi:
<a href="javascript:void(0)" onclick="htmlData('cambia.asp','div_desplegar','pa rametros=valores')">
link</a>

pero si en la respuesta que regresa cambia.asp hay codigo JS no funciona, como podria hacerle para que funcione?

ME URGE... gracias
  #2 (permalink)  
Antiguo 31/08/2010, 17:23
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Usar Script JS en llamado Ajax asp

NO puedes ejecutar javascript directamente al actualizar contenido, pero hay algunos trucos que podrian servirte.

Lo que yo estoy probando es separar salida de codigo JS a ejecutar con eval(), mas o menos asi:

Código HTML:
Ver original
  1. <p>Esto es la salida normal para llenar el div</p>
  2. <!-- JS adicional -->
  3. alert('Esto se ejecuta despues de actualizar el div.');

Luego, en tu javascript:
Código Javascript:
Ver original
  1. function stateChanged(proceso, caja)
  2. {
  3.    if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
  4.    {
  5.     // Separamos el contenido del codigo js
  6.     // Si no existe el texto de separacion, solo se creara separa[0], o sea, el contenido
  7.     separa = proceso.splpit('<!-- JS adicional -->');
  8.     // actualizamos la capa:
  9.     document.getElementById(caja).innerHTML=separa[0];
  10.     // Si hay codigo JS, ejecutarlo:
  11.     if(separa[1])
  12.         eval(separa[1]); // voila!!!
  13.    }
  14.    else {
  15.      //alert(xmlHttp.status);
  16.    }
  17. }

Solo habria que considerar los problemas de seguridad que esto pudiera provocar.
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: ajax, asp, js, llamado
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:29.