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

Ejecutar javascript despues de AJAX

Estas en el tema de Ejecutar javascript despues de AJAX en el foro de Frameworks JS en Foros del Web. Vale a ver el problema que tengo es que yo con el una funcion de ajax devuelvo un php que contiene cierto codigo javascript. Despues ...
  #1 (permalink)  
Antiguo 25/02/2009, 17:49
Avatar de Pinx0  
Fecha de Ingreso: agosto-2008
Ubicación: Valencia
Mensajes: 39
Antigüedad: 15 años, 8 meses
Puntos: 0
Ejecutar javascript despues de AJAX

Vale a ver el problema que tengo es que yo con el una funcion de ajax devuelvo un php que contiene cierto codigo javascript.

Despues de ejecutar esta funcion, se cambia correctamente el div con el contenido de dicho php pero la parte de javascript no funciona.

Si miro el codigo fuente si que está ahi, pero no funciona, no se ejecuta.


Como lo soluciono?
  #2 (permalink)  
Antiguo 25/02/2009, 17:56
Avatar de mdk
mdk
 
Fecha de Ingreso: noviembre-2002
Mensajes: 531
Antigüedad: 21 años, 5 meses
Puntos: 11
Respuesta: Ejecutar javascript despues de AJAX

Vale, acabas de preguntar lo mismo que yo, pero de diferente forma, solo que yo quiero cargar el javascript mediante un onload, y luego mediante un resize cada vez que se cambie el tamaño de la ventana. A ver si tenemos suerte y obtenemos respuesta, jejeje.
__________________
SoY Lo Ke VeS iNKLuSo KuAnDo No Me VeS ;)
  #3 (permalink)  
Antiguo 25/02/2009, 18:45
Avatar de Pinx0  
Fecha de Ingreso: agosto-2008
Ubicación: Valencia
Mensajes: 39
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Ejecutar javascript despues de AJAX

bueno yo no me referia en un onload exactamente sino en cualquier parte.

por ejemplo un

<script>alert('hola');</script>

quiero q funcione, simplemente eso xD
  #4 (permalink)  
Antiguo 25/02/2009, 19:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Ejecutar javascript despues de AJAX

http://www.forosdelweb.com/f77/howto...e-ajax-510438/

Saludos
  #5 (permalink)  
Antiguo 26/02/2009, 09:17
Avatar de Pinx0  
Fecha de Ingreso: agosto-2008
Ubicación: Valencia
Mensajes: 39
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Ejecutar javascript despues de AJAX

pero ese codigo php no es javascript???

donde hay que ponerlo?

he probado a meterlo en el ajax así...

Código:
ajaxRequest3.onreadystatechange = function(){
		if(ajaxRequest3.readyState == 4){
			var ajaxDisplay4 = document.getElementById('publicidad_estilos_ajax');
			var scs = ajaxRequest3.responseText.extractScript();    //capturamos los scripts
       		scs.evalScript();       //ahora si, comenzamos a interpretar todo  
			ajaxDisplay4.innerHTML = ajaxRequest3.responseText.stripScript();			

		}
	}
pero lo que hace es que cuando ejecuto el ajax me sale en toda la pantalla unicamente el script que contenia el php que quiera cargar
  #6 (permalink)  
Antiguo 26/02/2009, 11:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Ejecutar javascript despues de AJAX

Es al revez, primero capturas con scs, luego asignas, el responseText (sin el stripScript) y luego evaluas el Javascript.

Saludos
  #7 (permalink)  
Antiguo 26/02/2009, 16:04
Avatar de Pinx0  
Fecha de Ingreso: agosto-2008
Ubicación: Valencia
Mensajes: 39
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Ejecutar javascript despues de AJAX

Código:
ajaxRequest3.onreadystatechange = function(){
		if(ajaxRequest3.readyState == 4){
			var ajaxDisplay4 = document.getElementById('publicidad_estilos_ajax');
			var scs = ajaxRequest3.responseText.extractScript();    //capturamos los scripts
			ajaxDisplay4.innerHTML = ajaxRequest3.responseText;
       		        scs.evalScript();       //ahora si, comenzamos a interpretar todo  
				

		}
	}
Sigue pasando lo mismo, es que el javascript tiene un document.write y cuando le doy lo unico que acaba mostrando es eso.

Como lo soluciono?
  #8 (permalink)  
Antiguo 26/02/2009, 16:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Ejecutar javascript despues de AJAX

No uses document.write, tienes que asignar el resultado vía DOM.

Saludos
  #9 (permalink)  
Antiguo 27/02/2009, 04:32
 
Fecha de Ingreso: enero-2009
Mensajes: 148
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Ejecutar javascript despues de AJAX

Prueba a cargar la parte del javascript en la etiqueta <head> de la página y no dentro de la etiqueta <body>

Un saludo
  #10 (permalink)  
Antiguo 27/02/2009, 11:01
Avatar de Pinx0  
Fecha de Ingreso: agosto-2008
Ubicación: Valencia
Mensajes: 39
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Ejecutar javascript despues de AJAX

Cita:
Iniciado por GatorV Ver Mensaje
No uses document.write, tienes que asignar el resultado vía DOM.

Saludos
Es que es un javascript predefinido de publicidad. No se como cambiarlo... Es este:

Código PHP:
<script  language="javascript"  type="text/javascript">
iw_ad_alternativo="xxxxxxxxxxxx/publicidad/468x60ads.php";
iw_ad_ancho=468;
iw_ad_alto=60;
iw_ad_formato="ad_468x60";
iw_ad_cad="xxxxxxxxxxxxxxxx";
iwsrcplus="xxxxxxxxxxxxxxxx/r/banner_iw.php?idrotador=xxxxxxx&tamano=468x60&lgid="+((new Date()).getTime() % 2147483648) + Math.random();
document.write("<scr"+"ipt language=javascript  type=text/javascript src=\""+iwsrcplus+"\"></scr"+"ipt>");
</script>
<noscript><iframe src="xxxxxxxxxxxxx/noscript.php?tam=468x60&idp=xxxxxxx&ref=xxxxxxxxxx&cod=xxxxxx" width="468" height="60" frameborder="0" marginheight="0" marginwidth="0" scrolling="no"></iframe></noscript> 
  #11 (permalink)  
Antiguo 27/02/2009, 14:38
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Ejecutar javascript despues de AJAX

Vas a tener que modificar ese código o buscar otro código que sea mas DOM friendly y no use document.write.

Saludos
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 13:25.