Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/07/2008, 08:56
Proguri
 
Fecha de Ingreso: abril-2008
Ubicación: Montevideo - Uruguay
Mensajes: 156
Antigüedad: 16 años
Puntos: 5
Evaluar <script> devuelto

Hi !

Hace como 2 semanas que estoy con esto y no doy con la respuesta, he leido y re leido los 2 Posts más importantes que hay con estas respuestas pero no he podido sacar nada en conclusión.

Explico brevemente:
Tengo una web con un listado de productos que cargo dinamicamente con 2 combos, el problema está en que cuando hago la llamada para traer los datos recibo como respuesta algo asi:

nombre_producto*descripción*color_producto*script

Ahora, el ultimo script devuelto me genera un array con el path a las imagenes del producto, para luego yo hacer una especie de galeria, algo asi me devuelve:

Código HTML:
 <script language="javascript">
		createArray = function() {
			var img = new Array();
			img[0] = "path/nombre_imagen.jpg";
		return img; 
	}
	</script> 
Eso lo genera dinamicamente (No se crean que siempre muestra un resultado [0] :P ).

La cosa es que yo quiero mediante otra función cambiar el src de la imagen para hacer una especie de galeria, pero no me reconoce el script aunque ponga la propiedad de prototype (evalScripts: true) o ponga: resultado.evalScripts();

Los evalua pero solo una vez entonces no reconoce luego para utilizar una función en ese resultado, no genera el array en otras palabras.

Les dejo el codigo:
Código HTML:
	function formSet() {
                // Quité algunas funciones que no eran necesarias

		var ajax = new Ajax.Request(url, 
			{
				method:"GET", 
				onSuccess:ajaxResponse,
				evalScripts:true,
				parameters:pars
			});
			
		function ajaxResponse(response) {
			var rsp = response.responseText;
			var spl = rsp.split("*");
			
			var datos = new Array()
				datos["modelo"] = spl[0];
				datos["descripcion"] = spl[1];
				datos["color"] = spl[2];
				datos["script"] = spl[3];
				
			$("nombre_producto").innerHTML = datos["modelo"];
			$("descripcion_corta").innerHTML = datos["descripcion"];
			$("modelo").innerHTML = datos["modelo"];
			$("color").innerHTML = datos["color"];
			
			//$("script").innerHTML = datos["script"];
			var scs = datos["script"].extractScript();
			alert(scs);
        	//$("script").innerHTML = scs;
        	//scs.evalScript();
		}
	}
	
	function pasaImg(a, img) {
				var fin = img.lenght();
				
				if (a == 1) {
					if (i <= fin) {
						$("img_foto").src = img[i+1];
					}else{
						$("img_foto").src = img[0];
					}
				}else{
					if (i >= 0) {
						$("img_foto").src = img[i-1];
					}else{
						$("img_foto").src = img[fin];
					}
				}
	}
Espero puedan ayudarme.
Saludos.
__________________
--
Mi Portfolio Online! Visitalo!
--