Retroceder   Foros del Web > Programación para sitios web > AJAX

Respuesta
 
Herramientas Desplegado
Antiguo 04-mar-2008, 13:12   #31 (permalink)
MaBoRaK tiene algunos puntos positivos de karma
 
Avatar de MaBoRaK
 
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 1.692
Enviar un mensaje por MSN a MaBoRaK
Re: HOWTO: Ejecutar javascript que viene de ajax

loading...........

Excelente :D


Sería bueno ponerlo en las FAQ

connection closed.
__________________
maborak@maborak.com
http://www.maborak.com
Maborak technologies
MaBoRaK está desconectado   Responder Citando
Antiguo 08-mar-2008, 11:50   #32 (permalink)
tonqac ha deshabilitado la reputación
 
Fecha de Ingreso: junio-2005
Mensajes: 2
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???
tonqac está desconectado   Responder Citando
Antiguo 10-mar-2008, 12:23   #33 (permalink)
MaBoRaK tiene algunos puntos positivos de karma
 
Avatar de MaBoRaK
 
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 1.692
Enviar un mensaje por MSN a MaBoRaK
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@maborak.com
http://www.maborak.com
Maborak technologies
MaBoRaK está desconectado   Responder Citando
Antiguo 18-mar-2008, 08:22   #34 (permalink)
quinqui tiene algunos puntos positivos de karma
 
Avatar de quinqui
 
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 333
Re: HOWTO: Ejecutar javascript que viene de ajax

Holas!

Gracias por este aporte, me he leído todo el tema, e intentado aplicar las soluciones dadas en mi propio script, mas no me han funcionado. La razón, claro, es porque todavía soy novata en el uso de AJAX, así que por eso les pido consejo.

Rápidamente les contaré que el script que estoy usando lo heredé de un compañero de trabajo, por lo que sólo copié y usé, pero sin entender mucho, el caso es que funcionó todo bien, hasta que me tocó ver que el código JS inserto en la respuesta Ajax no se ejecutaba.

Gracias a ustedes me entero que esto es "normal", y bueno mi caso es que el código Ajax que tengo es algo así:

Código HTML:
	var ajx = Ext.get("miDiv");
	ajx.load({
	    url: 'script.php',
	    method: 'POST',
	    params: Ext.lib.Ajax.serializeForm('miForm'),
	    text: "<img src=../images/loading.gif> Consultando Informacion Remota..."
	});
	ajx.show();
	ajx.highlight();
¿Es esto una librería de Ajax? Si es así, cómo puedo aplicar la solución que ustedes dieron, sobre este código mío?

Desde ya muchísimas gracias ó_ò
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
quinqui está desconectado   Responder Citando
Antiguo 24-mar-2008, 15:41   #35 (permalink)
titogelo ha deshabilitado la reputación
 
Fecha de Ingreso: enero-2008
Mensajes: 17
Re: HOWTO: Ejecutar javascript que viene de ajax

Hola

no entiendo nada me han borrado las dudas que tenia yo aki? no entiendo xk, pero bueno

Taluego y MUXAS GRACIAS
titogelo está desconectado   Responder Citando
Antiguo 24-mar-2008, 15:43   #36 (permalink)
Moderador
GatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy pronto
 
Avatar de GatorV
 
Fecha de Ingreso: mayo-2006
Ubicación: Queretaro, Mexico
Mensajes: 9.504
Re: HOWTO: Ejecutar javascript que viene de ajax

Hola titogelo,

Tus dudas fueron movidas a un tema nuevo: Problemas al ejecutar JS desde AJAX

Saludos.
__________________
Blog Web
GatorV está desconectado   Responder Citando
Antiguo 21-abr-2008, 08:48   #37 (permalink)
lalogrosz está en el buen camino
 
Avatar de lalogrosz
 
Fecha de Ingreso: noviembre-2002
Ubicación: Capital Federal
Mensajes: 272
Enviar un mensaje por MSN a lalogrosz
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:
<script src="http://gmodules.com/ig/ifr?url=http://www.canbuffi.de/gadgets/clock/clock.xml&amp;up_title=Clock%20%26%20Date&amp;up_time_format=0&amp;up_seconds=1&amp;up_date_format=1&amp;up_dayofweek=1&amp;up_gmtoffset=-3&amp;up_daylight=0&amp;synd=open&amp;w=320&amp;h=120&amp;title=__UP_title__+(GMT__UP_gmtoffset__)&amp;lang=en&amp;country=ALL&amp;border=%23ffffff%7C3px%2C1px+solid+%23999999&amp;output=js"></script>
No me parsea el contenido de eso y quiero mostrarlo unicamente por ajax.
Alguna solucion?

Gracias!
__________________
"Vivir....solo cuesta Vida"
lalogrosz está desconectado   Responder Citando
Antiguo 21-abr-2008, 08:58   #38 (permalink)
MaBoRaK tiene algunos puntos positivos de karma
 
Avatar de MaBoRaK
 
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 1.692
Enviar un mensaje por MSN a MaBoRaK
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@maborak.com
http://www.maborak.com
Maborak technologies
MaBoRaK está desconectado   Responder Citando
Antiguo 21-abr-2008, 09:11   #39 (permalink)
lalogrosz está en el buen camino
 
Avatar de lalogrosz
 
Fecha de Ingreso: noviembre-2002
Ubicación: Capital Federal
Mensajes: 272
Enviar un mensaje por MSN a lalogrosz
Re: HOWTO: Ejecutar javascript que viene de ajax

Cita:
Iniciado por MaBoRaK Ver Mensaje
loading...........


Tienes la URL donde estes usando este script? La estas usando como la opcion A o la opcion B ?


connection closed.
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"
lalogrosz está desconectado   Responder Citando
Antiguo 21-abr-2008, 09:21   #40 (permalink)
MaBoRaK tiene algunos puntos positivos de karma
 
Avatar de MaBoRaK
 
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 1.692
Enviar un mensaje por MSN a MaBoRaK
Re: HOWTO: Ejecutar javascript que viene de ajax

loading...........

Leiste la documentación de Prototype?

connection closed.
__________________
maborak@maborak.com
http://www.maborak.com
Maborak technologies
MaBoRaK está desconectado   Responder Citando
Antiguo 05-may-2008, 01:49   #41 (permalink)
nebus ha deshabilitado la reputación
 
Fecha de Ingreso: abril-2008
Mensajes: 7
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!!
nebus está desconectado   Responder Citando
Antiguo 16-may-2008, 12:34   #42 (permalink)
Colaborador
Panino5001 llegará a ser famoso muy prontoPanino5001 llegará a ser famoso muy pronto
 
Avatar de Panino5001
 
Fecha de Ingreso: mayo-2004
Mensajes: 1.109
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:
<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>
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.
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:
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,'');
}
Y un ejemplo de uso sería este:
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>

Última edición por Panino5001; 16-may-2008 a las 13:07.
Panino5001 esta en línea ahora   Responder Citando
Respuesta
Califica este Tema - HOWTO: Ejecutar javascript que viene de ajax.


Herramientas
Desplegado Califica este Tema
Califica este Tema:

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La zona horaria es GMT -6. Ahora son las 13:40.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93