Ver Mensaje Individual
  #10 (permalink)  
Antiguo 02/10/2006, 14:35
Avatar de ikhuerta
ikhuerta
 
Fecha de Ingreso: octubre-2006
Mensajes: 104
Antigüedad: 18 años, 2 meses
Puntos: 0
Buenas, quizás soy muy obvio en la respuesta pero dejarme intentarlo...

El problema es que al cargar con ajax usando responseText no interpreta lo cargado como html con sus etiquetas sino que simplemente lo usa como una cadena... (si trabajais cargando partes de formularios con ajax vereis lo que se os lian por culpa de eso las validaciones).

Se trataría de hacer una función que cogiese lo cargado con ajax y separase el contenido de las etiquetas script del resto para después lanzar un eval(contenido). Aunque para eso ya os digo que tendreis que controlar la vuelta de vuestro ajax y que no se vaya directo al div contenedor.

Eso para simplemente ejecutar javascript en linea... otra cosa es cargar funciones nuevas con ajax que no creo que funcione.

La función a la que me refiero sería algo así:

Código:
///////////////////////////////////////////////
function rescatar_script(texto)
{
	var p1=texto.split("<scrip",2);
	if (p1[1]) {
		var p2=p1[1].split(">",2);
		var p3=p2[1].split("</script",2)
		if (p3[0] && p3[0]!='')
			eval(p3[0]); 
			texto=p1[0]+p3[1]; 
			texto=rescatar_script(texto); 
	}
	return texto;	
}
///////////////////////////////////////////////
Entonces tendríais que pasarle esta función al texto antes de que lo llevase al div...

por ejemplo...

Código:
//creamos el objeto XmlHttpRequest con la función que usemos...
XHR=crear_XmlHttpRequest();

// Y metemos el extractor de script antes del innerHTML
XHR.open("GET", "mi_url.php", true); post=null; }
XHR.onreadystatechange=function() { 	if (XHR.readyState==4) {
if (XHR.status==200) {	
TEXTO=rescatar_script(XHR.responseText;);
document.getElementByID("mi_Div").innerHTML=TEXTO;
}
  XHR.send(null); }