Foros del Web » Programando para Internet » Javascript »

Problema con innerHTML="<div></div>"

Estas en el tema de Problema con innerHTML="<div></div>" en el foro de Javascript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 09/11/2007, 14:48
 
Fecha de Ingreso: junio-2007
Mensajes: 6
Antigüedad: 16 años, 10 meses
Puntos: 0
Problema con innerHTML="<div></div>"

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?

Gracias.
  #2 (permalink)  
Antiguo 09/11/2007, 14:54
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 11 meses
Puntos: 834
Re: Problema con innerHTML="<div></div>"

No es normal. No tendrás una variable llamada contenedor en algún lado? Lo mejor sería que mostraras tu página funcionando en algún lado.
  #3 (permalink)  
Antiguo 09/11/2007, 15:15
 
Fecha de Ingreso: junio-2007
Mensajes: 6
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Problema con innerHTML="<div></div>"

la pagina está en mi servidor local, no puedo colgarla a ningun lado pero te puedo poner el codigo con el que estoy haciendo pruebas:

El html con javascript.
Código HTML:
<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 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 solo contiene esto:

Código PHP:
<?php
echo "<div><p>Codigo de pruebas para ver si funciona esto</p></div>"
?>
es basicamente lo que no funciona de mi codigo. en el original el php obtiene datos de mysql y genera una serie de capas html. con este codigo hago las pruebas y me da exactamente el mismo fallo en el mismo sitio...
  #4 (permalink)  
Antiguo 09/11/2007, 17:59
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 11 meses
Puntos: 834
Re: Problema con innerHTML="<div></div>"

Evidentemente se trata de otro problema de Explorer. Si al elemento con id "nada" lo reemplazás por un elemento div, se soluciona, pero no es normal. En Firefox y Ópera se comporta como se espera sin cambiar nada.
  #5 (permalink)  
Antiguo 10/11/2007, 07:40
 
Fecha de Ingreso: junio-2007
Mensajes: 6
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Problema con innerHTML="<div></div>"

Que error mas tonto, juraria haber probado poniendo un div. Por ahora puedo seguir pero mas adelante me gustaría no usar innerHTML ya que no es estandar y por lo visto va a desaparecer del MIME Type application/xhtml+xml. Me gusta que lo que escribo funcione, pero también me gusta que funcione por mucho tiempo.

En fin, muchas gracias por la ayuda.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:08.