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. |
Este tema le ha gustado a 4 personas (incluyéndote)