loading...........
Excelente :D
Sería bueno ponerlo en las FAQ
connection closed.
| ||||
Re: HOWTO: Ejecutar javascript que viene de ajax loading........... Excelente :D Sería bueno ponerlo en las FAQ connection closed.
__________________ Maborak Technologies |
| |||
Re: HOWTO: Ejecutar javascript que viene de ajax acabo de descubrir que este codigo no funciona bien en Mozilla!! cuando quiero recuperar los datos en otra pagina a traves de un request.form no reconoce los datos que cargue desde el ajax!!!!! alguien sabe como solucionarlo??? |
| ||||
Re: HOWTO: Ejecutar javascript que viene de ajax loading............. Puedes poner la URL donde la usas? o bien... especificar mejor el problema. No te entendí. connection closed.
__________________ Maborak Technologies |
| ||||
Re: HOWTO: Ejecutar javascript que viene de ajax Hola titogelo, Tus dudas fueron movidas a un tema nuevo: http://www.forosdelweb.com/f77/probl...e-ajax-568812/ Saludos. |
| ||||
Re: HOWTO: Ejecutar javascript que viene de ajax Hola, yo utilizo el framework de prototype para realizar estas cosas, indicandole la opcion evalScripts: true Funciona perfecto cuando me trae codigo para pegar en el html. El problema esta cuando quiero pegar un script con un src...ejemplo, un gadget de google:
Código:
No me parsea el contenido de eso y quiero mostrarlo unicamente por ajax.<script src="http://gmodules.com/ig/ifr?url=http://www.canbuffi.de/gadgets/clock/clock.xml&up_title=Clock%20%26%20Date&up_time_format=0&up_seconds=1&up_date_format=1&up_dayofweek=1&up_gmtoffset=-3&up_daylight=0&synd=open&w=320&h=120&title=__UP_title__+(GMT__UP_gmtoffset__)&lang=en&country=ALL&border=%23ffffff%7C3px%2C1px+solid+%23999999&output=js"></script> Alguna solucion? Gracias!
__________________ "Vivir....solo cuesta Vida" |
| ||||
Re: HOWTO: Ejecutar javascript que viene de ajax loading........... Tienes la URL donde estes usando este script? La estas usando como la opcion A o la opcion B ? connection closed.
__________________ Maborak Technologies |
| ||||
Re: HOWTO: Ejecutar javascript que viene de ajax Cita: No, no lo tengo online, es local por ahora.Pero el ejemplo es sencillo. La idea es ejecutar script de un src. Solo quiero saber si se puede hacer eso con Prototype y de que forma Gracias.
__________________ "Vivir....solo cuesta Vida" |
| ||||
Re: HOWTO: Ejecutar javascript que viene de ajax loading........... Leiste la documentación de Prototype? connection closed.
__________________ Maborak Technologies |
| |||
Re: HOWTO: Ejecutar javascript que viene de ajax Hola a todos. Estoy intentando aplicar estas funciones a mi código, ya que tengo un problema que describo en otro tema en este foro(No pongo el link porque el sistema antispam no me deja). El problema viene a raiz de querer usar shadowbox en paginas cargadas con Ajax. Shadowbox funciona perfectamente en la pagina raiz pero en las paginas cargadas no. He probado a incluir la llamada a shadowbox.init() en la pagina en la que quiero usar shadowbox que cargo por ajax y sigue sin funcionar. Alguna idea? muchas gracias!! |
| ||||
Respuesta: HOWTO: Ejecutar javascript que viene de ajax Antes, cuando tenía que evaluar código javascript incluído en un responseText, lo hacía de esta manera:
Código:
Pero al parecer, Explorer 7 ya no incluye los tags script dentro de la propiedad innerHTML, por lo cual, esa técnica ya no funciona, a menos que reemplacemos los tags scripts por otros y volvamos luego a recrearlos.<script> function SetContainerHTML(id_contenedor,responseText) { mydiv = document.getElementById(id_contenedor); mydiv.innerHTML = responseText; var elementos = mydiv.getElementsByTagName('script'); for(i=0;i<elementos.length;i++) { var elemento = elementos[i]; nuevoScript = document.createElement('script'); nuevoScript.text = elemento.innerHTML; nuevoScript.type = 'text/javascript'; if(elemento.src!=null && elemento.src.length>0) {nuevoScript.src = elemento.src;} elemento.parentNode.replaceChild(nuevoScript,elemento); } } </script> Así que me decanté por la opción de las regExp, como la sugerida por MaBoRaK, en la cual se fundamenta toda la idea, pero con algunas diferencias: usando un único prototype para realizar todo el proceso, ya sea para extraer scripts internos y/o externos, e incluyéndos con DOM, en lugar de evaluarlos. El código utilizado para esto es el siguiente:
Código:
Y un ejemplo de uso sería este:String.prototype.tratarResponseText=function(){ var pat=/<script[^>]*>([\S\s]*?)<\/script[^>]*>/ig; var pat2=/\b\s+src=[^>\s]+\b/g; var elementos = this.match(pat) || []; for(i=0;i<elementos.length;i++) { var nuevoScript = document.createElement('script'); nuevoScript.type = 'text/javascript'; var tienesrc=elementos[i].match(pat2) || []; if(tienesrc.length){ nuevoScript.src=tienesrc[0].split("'").join('').split('"').join('').split('src=').join('').split(' ').join(''); }else{ var elemento = elementos[i].replace(pat,'$1',''); nuevoScript.text = elemento; } document.getElementsByTagName('body')[0].appendChild(nuevoScript); } return this.replace(pat,''); }
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>test</title> <script> function $(id){return document.getElementById(id);} function http(){ if(window.XMLHttpRequest){ return new XMLHttpRequest(); }else{ try{ return new ActiveXObject('Microsoft.XMLHTTP'); }catch(e){ alert('nop'); return false; } } } String.prototype.tratarResponseText=function(){ var pat=/<script[^>]*>([\S\s]*?)<\/script[^>]*>/ig; var pat2=/\b\s+src=[^>\s]+\b/g; var elementos = this.match(pat) || []; for(i=0;i<elementos.length;i++) { var nuevoScript = document.createElement('script'); nuevoScript.type = 'text/javascript'; var tienesrc=elementos[i].match(pat2) || []; if(tienesrc.length){ nuevoScript.src=tienesrc[0].split("'").join('').split('"').join('').split('src=').join('').split(' ').join(''); }else{ var elemento = elementos[i].replace(pat,'$1',''); nuevoScript.text = elemento; } document.getElementsByTagName('body')[0].appendChild(nuevoScript); } return this.replace(pat,''); } function SetContainerHTML(id_contenedor,responseText){ var mydiv = $(id_contenedor); mydiv.innerHTML = responseText.tratarResponseText(); } function cargarPagina(url,contenedorId){ var H=new http(); H.open('get',url+'?'+Math.random(),true); H.onreadystatechange=function(){ if(H.readyState==4){ SetContainerHTML(contenedorId,H.responseText); H.onreadystatechange=null; }else{ $(contenedorId).innerHTML='cargando...'; } } H.send(null); } window.onload=function(){ cargarPagina('pagina2.php','pp'); } </script> </head> <body> <div id="pp"></div> </body> </html>
__________________ Fast, lightweight, cross-platform framework for building incredible, powerful JavaScript applications Última edición por Panino5001; 16/05/2008 a las 13:07 |
| ||||
Respuesta: HOWTO: Ejecutar javascript que viene de ajax Hola ronin, Si usas prototype solo tienes que pasar el parámetro de evalScripts: true, para que los ejecute, no es necesario usar esto. Saludos. |