Ver Mensaje Individual
  #6 (permalink)  
Antiguo 27/08/2008, 21:34
Avatar de Panino5001
Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 6 meses
Puntos: 834
Respuesta: javascript tras la carga de un div (alternativa)

Tu xml tiene problemas. Con esté código de testeo y arreglando el xml, funciona sin problemas:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<
title>test</title>
<
script>
function $(
id){return document.getElementById(id);}

function 
http(){
    if(
window.XMLHttpRequest){
        return new 
XMLHttpRequest();    
    }else{
        try{
            return new 
ActiveXObject('Microsoft.XMLHTTP');
        }catch(
e){
            
alert('nop');
            return 
false;
        }    
    }

function 
procesaAjax(){
    
ajax=H;
    
capa='pp';
    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;
        }
    }

}  
var 
H;
window.onload=function(){
    var 
url='xml.php';
    
H=new http();
    
H.open('get',url+'?'+Math.random(),true);
    
H.onreadystatechange=procesaAjax;
    
H.send(null);
}
</script>
</head>

<body>
<div id="pp">dd</div>
</body>
</html> 
El xml corregido es este:
Código PHP:
<?php
$xml
="<?xml version='1.0' encoding='ISO-8859-1'?>";
$xml.="<datos>";
$xml.="<javascript>alert(1)</javascript>";
$xml.='
<h1>Tecnologías del 2.0</h1>
<script>//mensajitos();</script>
<table width="100%">
    <tr>
        <td>
            <img src="i/contenido/tecnologias_1.jpg" class="img_seccion" />
        </td>
        <td width="70%">
            <p><b>Una combinación de estas tecnologías en una web, la definen como web 2.0</b></p>
            <p>
                <ul>
                    <li>
                        XHTML - Lenguaje básico por etiquetas.<br />
                        Toda web necesita de este lenguaje de programación para mostrar en el navegador los resultados.
                    </li>                   
                    <li>
                        CSS - Hojas de estilo<br />
                        Para cambiar el estilo de cualquier elemento de la web, con solo añadirle una propiedad.
                    </li>             
                    <li>
                        PHP - Dinamización de contenidos.<br />
                        Es el lenguaje de programación más usado, tiene innumerables funciones para transformar una simple web, en una complejidad con unas líneas de su código.
                    </li>
                    <li>
                        Mysql - El tipo de base de datos más utilizado en los últimos años.<br />
                        Pueden acoger cualquier tipo de dato o información para ser luego mostrada en web, por ejemplo.
                    </li>
                    <li>
                        Javascript - Cambia estaticamente el código HTML generado de una web.<br />
                        Normalmente se usa para hacer validaciones de formulario, mostrar/ocultar capas...
                    </li>
                    <li>
                        Ajax - Servicios en segundo plano.<br />
                        Son peticiones y respuestas que se cargan en capas. Útimamente estÁ de moda y es muy útil para que los usuarios no deban recargar la página todo el tiempo.
                    </li>
                </ul>
            </p>
        </td>
    </tr>
</table>


'
;

$xml.="</datos>";
header("Content-type: text/xml\n\n");
echo 
$xml;
?>