Comunidad de diseño web y desarrollo en internet online

innerHTML con IE

Citar            
MensajeEscrito el 13 May 2010 08:18 am
Hola!
Os explico...
Con la siguiente función guardo por ajax:

Código :

function guardar(tablainsertar,nombretabla,indice){
    oXML = AJAXCrearObjeto();
    if (document.getElementById("ntitulo").value!=""){
        if(document.getElementById("ndescripcion").value!=""){
            if(document.getElementById("fecha").value!=""){
                datos="tabla="+nombretabla+"&titulo="+escape(document.getElementById("ntitulo").value)+"&descripcion="+escape(document.getElementById("ndescripcion").value)+"&fecha="+convierteFecha(document.getElementById("fecha").value);               
            }else{
                alert("Escriba una Fecha");
            }               
        }else{
            alert("Escriba una Descripción");
        }
           
    }else{
        alert("Escriba un Título");           
    }         
   
    //Si estamos editando uno existente
    if (editado!=""){
        datos+="&editado="+escape(editado);
    }
    if(datos!=""){
        oXML.open('GET', 'login.php?' + datos,false);
        oXML.send(null);
        if (oXML.readyState  == 4){               
            document.getElementById("cuerpo"+nombretabla).innerHTML= oXML.responseText;
            limpiaText(nombretabla);
        }
    }   
}


Con firefox me funciona prefectamente.... pero con IE me da error en el document.getElementById("cuerpo"+nombretabla).innerHTML= oXML.responseText; . El envío lo hace bien porque a la base de datos me lo agrega bien, y si hago un alert al oXML.responseText me viene todo perfecto con sus etiquetas y demás. Pero aún así IE me da error insertando el contenido con el innerHTML. En firefox toda la página va perfecta.

Gracias de antemano.

Por lokken

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 13 May 2010 10:20 pm
dale un alert a document.getElementById("cuerpo"+nombretabla), en IE deve de darte un alart con "object" en FF te debe de dar un texto según el Element me imagino que es un div entonces seria algo como DivHTMLElement o algo así, innerHTML funciona perfectamente posteriores creo de IE5.5 no deveria de tener problema con innerHTML, mas bien no estas encotrado el div, puede si lo encuentras en FF es que lo estas si lo tienes en tu DOM, verifica que tu estructura HTML este bien formada. aqui la importancia de formar bien el documento xHTML por que si no lo formas bien el explorador lo completa y no siempre de la misma manera uno de otro,

si en el alert de alert(document.getElementById("cuerpo"+nombretabla)) te da undefined es que no esta encotrando el Element y por eso no te funciona, también prueba que es lo que esta llegando en nombretabla

Por wariodiaz

55 de clabLevel



 

firefox
Citar            
MensajeEscrito el 14 May 2010 07:58 am
Gracias por contestar pero me temo que sigo sin solución.

Si hago un alert(document.getElementById("cuerpo"+nombretabla)) me devuelve [Object]. Concretamente es un TBODY lo que le mando, pq la respuesta oXML son filas con celdas.
Firefox me crea la tabla perfectamente, pero en IE me da un error desconocido en tiempo de ejecución... el caso es que en la base de datos me lo guarda bien y si refresco la web ahi esta el registro nuevo... por lo que el problema es a la hora de meter en el innerHTML que además el linea de código que el IE me da como erronea. De que más puede ser? :S

Gracias.

Por lokken

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 14 May 2010 08:07 am
Para más informacion, si igualo el objeto.html a "" para vaciarlo en lugar de meterle la respuesta oXML, tampoco lo hace.

Por lokken

10 de clabLevel



 

firefox
Citar            
MensajeEscrito el 14 May 2010 06:54 pm
el problema es que el TBODY no admite innerHTML, regularmente este se usa para div's o span aunque algunas otras etiquetas lo aceptan, para meter los Rows de forma dinamica los tienes que construir desde JS o bien encierra tu tabla en un div y te traes la table completa, yo te recomiendo trarte un JSON del servidor y crear lso TR's y TD's con JS, si no prueba con un div y se supone que deve de estar funcionando, pero IE no deja insertar HTML en un TBODY como te decia

Por wariodiaz

55 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 May 2010 07:53 am
Lo he metido todo en un div y funciona, muchisimas gracias :)

Por lokken

10 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.