Ver Mensaje Individual
  #13 (permalink)  
Antiguo 15/08/2009, 10:26
Zack78
(Desactivado)
 
Fecha de Ingreso: enero-2008
Mensajes: 272
Antigüedad: 16 años, 10 meses
Puntos: 1
Respuesta: Problema con AJAX - no funciona a la segunda llamada... solo sirve el HTML

Cita:
Iniciado por zaqpz Ver Mensaje
Puedes traer tu alert o incluso definir funciones JavaScript en tu archivo procesador si cuando recibes esos datos en tu archivo "llamador" creas una nueva etiqueta <script> en el head y colocas todo dentro de ella. A continuación les dejo un simple ejemplito (bastante inútil, pero lo hice con el objetivo de que se entienda lo que digo) que trae un alert y una función encargada de cambiar el color de fondo de la página principal:

test.php
Código:
<html>
<head>
<script type="text/javascript">
<!-- Crear clase AJAX a gusto llamandola nuevoAjax() -->

function traeScript()
{
	ajax=nuevoAjax();
	ajax.open("POST", "test2.php", true);
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.send("trae=1");
	
	ajax.onreadystatechange=function() 
	{
		if (ajax.readyState==4)
		{ 
			// Aqui es donde creo la etiqueta script y coloco los datos que me llegan dentro de ella. Luego agrego esa etiqueta al head
			nuevoScript=document.createElement("script");
			nuevoScript.text=ajax.responseText;
			document.getElementsByTagName('head')[0].appendChild(nuevoScript);
		} 	
	}
}
</script>
</head>

<body>
<a href="javascript:traeScript();">Trae script</a>
<br>
<a href="javascript:ejecutaScript();">Ejecuta script</a>
</body>
</html>
test2.php
Código:
<?php
if($_POST["trae"]==1)
{
	echo "
	alert('Script traido y funcional');
	function ejecutaScript()
	{
		document.body.style.backgroundColor='#FF0000';
	}";
}
?>
Fijense que si intentan ejecutar el script antes de traerlo mediante los links correspondientes este no se ejecutará, ya que no existe. En el caso de solo intentar traer un alert, obteniendo la respuesta mediante el eval de JavaScript sería mas que suficiente.

Espero que esto responda sus cuestiones.

Saludos.
Excelente post para incluir javascript, en una pagina llamado con ajax

funciona perfectamente el ejemplo.

Pero tengo el siguiente proglema

Lo que quiero hacer es lo siguiente

de aqui
<script type="text/javascript">
<!--
v1 = "121245";

v2 = "455464";
v3= 400;
v4 = 60;
//-->
</script>

hasta qui entiendo bien

pero no se como incluir esto : <script type="text/javascript" src="http://prueba.prueba.com/ruta/xxx.js"> </script>

en la pagina donde llamo con ajax, quiero poner así:

<div>
<script type="text/javascript">
v1 = "121245";
v2 = "455464";
v3= 400;
v4 = 60;
</script>
<script type="text/javascript" src="http://prueba.prueba.com/ruta/xxx.js"> </script>
</div>

por favor ayúdame muchas gracias