Según he leido el problema de ejecutar javascript (decentemente) en ajax es una lata.
Encontré esta solución
http://www.formatoweb.com.ar/ajax/ejecutar_codigo_javascript_css_cargado_ajax.php
el ejemplo lo he probado y funciona, aunque no pinta nada. y solo ejecuta el javascript.
Entonces he partido de ahi, y he intentado poner en mi objeto ajax, tras el estado 4 las líneas que me parecieron importantes y necesarias : (a mi parecer)
Código PHP:
   var javascript=es_xml.getElementsByTagName("javascript")[0].childNodes[0].data;
                // Creo el nuevo JS
                var etiquetaScript=document.createElement("script");
                document.getElementsByTagName("head")[0].appendChild(etiquetaScript);
                etiquetaScript.text=javascript; 
    Código PHP:
   function procesaAjax(ajax,capa){
    var capaContenedora = document.getElementById(capa);
    if(ajax.readyState==1){
            capaContenedora.innerHTML="Cargando...";
    }else if (ajax.readyState==4){
        if(ajax.status==200){
            // esto es lo nuevo
            if(ajax.responseXML){
                es_xml=ajax.responseXML;
                alert(es_xml.getElementsByTagName)
                var javascript=es_xml.getElementsByTagName("javascript")[0].childNodes[0].data;
                // Creo el nuevo JS
                var etiquetaScript=document.createElement("script");
                document.getElementsByTagName("head")[0].appendChild(etiquetaScript);
                etiquetaScript.text=javascript;
            }
            // fin esto es lo nuevo
 
            document.getElementById(capa).innerHTML=ajax.responseText;
        }else if(ajax.status==404){
            capaContenedora.innerHTML = "La dirección no existe";
        }else{
            capaContenedora.innerHTML = "Error: "+ajax.status;
        }
    }
 
} 
    Se supone que ha de recorrer el archivo xml buscando las etiquetas <javascript> para montarlas luego como <scripts> y ejecutarlos pero... el firebug me da esto cuando le envio un xml:
Código PHP:
   es_xml.getElementsByTagName("javascript")[0] is undefined
procesaAjax(XMLHttpRequest, "contenido_dinamico")ajax.js (línea 38)
onreadystatechange()()ajax.js (línea 72)
[Break on this error] var javascript=es_xml.getElementsByT...ame("javascript")[0].childNodes[0].data; 
    Pd2; Toda ayuda es bien recibida (y lo que no es ayuda)
 



Este tema le ha gustado a 1 personas