Hola, estoy haciendo una aplicacion en ajax, lo cual no es el problema en si. El problema es mostrar un contenido de tipo "<div>loquesea</div>" usando innerHTML. Al parecer esto falla en IExplorer 6.0, si elimino las etiquetas <div> funciona correctamente. El codigo:

container=document.getElementById('contenedor');
container.innerHTML = '<div>lo que sea</div>';

Al parecer si con getElementById obtengo el body, es decir el cuerpo de la pagina entera, funciona pero necesito incrustar eso en un lugar determinado de la pagina.

He intentado usar este codigo:

div = document.createElement("div");
texto =document.createTextNode(ajax.responseText);
div.appendChild(texto); document.getElementById("contenedor").appendChild( div);

pero createTextNode convierte todo a texto plano cambiando las etiquetas por & lt;div& gt;

Mi pregunta es: ¿existe alguna forma de insertar todo un contenido html -que no lo genere en javascript ya que lo obtengo mediante ajax de un archivo php- en un elemento?


Pongo el codigo con el que estoy haciendo pruebas y me da el mismo error:

el HTML:

Código :

<html>
<head>
<title>y tal</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<script language='javascript'>
function nuevoAjax(){
var xmlhttp=false;
 try {
  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
 } catch (e) {
  try {
   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  } catch (E) {
   xmlhttp = false;
  }
 }

if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}

        function Generar(){
          var contenedor;
                contenedor=document.getElementById('nada');
          ajax=nuevoAjax();
                ajax.open("GET", "prueba.php",true);
          ajax.onreadystatechange=function() {
                        //alert(ajax.readyState);
                if (ajax.readyState==4 && ajax.status == 200) {

                        contenedor.innerHTML = ajax.responseText; //explorer 6.0 dice que falla aqui por un error desconocido en tiempo de ejecucion
                        //div = document.createElement(div);
                        //texto = document.createTextNode(ajax.responseText);
                        //div.appendChild(texto);
                        //document.getElementById("nada").appendChild(div);
                }        
          }
          ajax.send(null);
        }
</script>
<body id="body" onload="Generar()">
<div>
<p id="nada">nada</p>
</div>
</body>
</html>



y el archivo prueba.php:

Código :

<?php
echo "<div><p>Codigo de pruebas para ver si funciona esto</p></div>";
?>
[/code]