Foros del Web » Programando para Internet » Javascript »

Problema con innerHTML en IE

Estas en el tema de Problema con innerHTML en IE en el foro de Javascript en Foros del Web. Hola a todos. Tengo el siguiente código: if (oXmlHttp.status == 200) { var result = oXmlHttp.responseText.split("#"); /* 0: referencia 1: disponibilidad */ var referencia = ...
  #1 (permalink)  
Antiguo 29/08/2008, 06:41
gao
 
Fecha de Ingreso: agosto-2008
Mensajes: 8
Antigüedad: 15 años, 8 meses
Puntos: 0
Problema con innerHTML en IE

Hola a todos. Tengo el siguiente código:

if (oXmlHttp.status == 200) {
var result = oXmlHttp.responseText.split("#");
/*
0: referencia
1: disponibilidad
*/
var referencia = result[0];
var disponibilidad = result[1];
document.getElementById('precioTotal').innerHTML = document.getElementById('unidades').value * document.getElementById('precio').value;
document.getElementById('referencia').innerHTML = referencia;
document.getElementById('referenciaInput').value = referencia;
document.getElementById('disponibilidad').innerHTM L = disponibilidad;
}


En Firefox funciona correctamente. El problema lo tengo con Internet Explorer, que la línea document.getElementById('referencia').innerHTML = referencia; me da el siguiente error: Error desconocido en tiempo de ejecución.

En concreto, la línea que se está intentando sustituir es la siguiente:
<td class="fondo_precios_f01" align="center"><div id="referencia"> </div></td>

Vamos, nada del otro mundo. Esto no funciona ni en IE6 ni IE7. No he probado en otros IE....

¿Alguna idea?

Saludos y gracias!
  #2 (permalink)  
Antiguo 29/08/2008, 07:15
gao
 
Fecha de Ingreso: agosto-2008
Mensajes: 8
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Problema con innerHTML en IE

He cambiado el código que asigna la referencia por este otro:
var r = document.createTextNode(referencia);
document.getElementById('referencia').appendChild( r);

Sigue sin funcionar....
  #3 (permalink)  
Antiguo 29/08/2008, 07:19
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Problema con innerHTML en IE

Pueden ser varias cosas. Te sugiero en principio que reemplaces el caracter separador. También te sugiero que te asegures de que el tipo de datos sea correcto (tendrías que hacer parseInt(valor) para asegurarte de que las operaciones matemáticas las hacés con números en lugar de texto).
  #4 (permalink)  
Antiguo 29/08/2008, 07:23
gao
 
Fecha de Ingreso: agosto-2008
Mensajes: 8
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Problema con innerHTML en IE

Hola. Gracias por responder. En realidad no hago operaciones con el número, así que me da igual que sea texto o entero. Por otra parte, he comprobado que el elemento que referencio con document.getElementById('referencia') se encuentra, así como que la variable referencia tiene un valor válido. Todo está ok. Lo que no consigo es meter en ese id el texto de la variable.

Saludos
  #5 (permalink)  
Antiguo 29/08/2008, 07:31
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Problema con innerHTML en IE

Una cosa que me olvidé: Explorer suele confundir los id de los elementos html como nombres de variable. Es posible que esté sucediendo eso. Porqué no probás cambiar el nombre de la variable referencia (y fijate si no hay otras con los que suceda lo mismo) a ver si no es eso. Comentanos el resultado.
  #6 (permalink)  
Antiguo 29/08/2008, 07:32
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Problema con innerHTML en IE

Veo que con disponibilidad pasa lo mismo
  #7 (permalink)  
Antiguo 29/08/2008, 07:36
gao
 
Fecha de Ingreso: agosto-2008
Mensajes: 8
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Problema con innerHTML en IE

Sigue igual. Si elimino la línea de referencia, la disponibilidad si se muestra. Si no la comento, como falla la de referencia, que va antes que disponibilidad, pues no se muestra.

Saludos y gracias
  #8 (permalink)  
Antiguo 29/08/2008, 07:46
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Problema con innerHTML en IE

No se trata de eliminar sino de que la variable no se llame igual que el id (que si hay un objeto DOM cuyo id es referencia, no exista una variable llamada referencia -que se llame _referencia o referencia2, por ejemplo-, y lo mismo con el resto)
  #9 (permalink)  
Antiguo 29/08/2008, 07:49
gao
 
Fecha de Ingreso: agosto-2008
Mensajes: 8
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Problema con innerHTML en IE

Sí sí, si he hecho eso, pero además he intentado eliminar las líneas a ver qué ocurria.

Acabo de hacer una prueba en la que he puesto alert(document.getElementById('referencia').innerH TML) y me ha aparecido en blanco. He cambiado el contenido de <div id="referencia"></div> por <div id="referencia">a</div> y ha aparecido también en blanco...

No sé si es que he olvidado javascript o me estoy volviendo más tonto por momentos, porque yo juraría que esto es así...
  #10 (permalink)  
Antiguo 29/08/2008, 07:52
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Problema con innerHTML en IE

Podés subir tu ejemplo a un lugar donde pueda verse?
  #11 (permalink)  
Antiguo 01/09/2008, 00:11
gao
 
Fecha de Ingreso: agosto-2008
Mensajes: 8
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Problema con innerHTML en IE

Por desgracia no puedo subir nada... De todas formas, os pongo los dos códigos, ya que no es mucho...

[CODIGO HTML]
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody><tr>
<td class="fondo_precios_2_f01" valign="top"><table class="texto_precios_cajas" border="0" cellpadding="3" cellspacing="1" width="100%">
<tbody><tr>
<td class="fondo_precios_f01" align="center">{$_precio}:</td>
<td class="fondo_precios_f01" align="center">{$_referencia}:</td>
</tr>
<tr>
<td class="fondo_precios_f01" align="center">{$producto->getPrecio()} &euro;</td>
<td class="fondo_precios_f01" align="center"><div id="referencia"> </div></td>
</tr>
</tbody></table>



[CODIGO JAVASCRIPT]
function actualizarPrecio() {
var oXmlHttp = getHttpRequest();
oXmlHttp.open("get", "controller.php?action=actualizarPrecios&referenci a="+document.getElementById('variedades').value, true);

oXmlHttp.onreadystatechange = function() {
if (oXmlHttp.readyState == 4) {
if (oXmlHttp.status == 200) {
var result = oXmlHttp.responseText.split("#");
/*
0: referencia
1: disponibilidad
*/
var ref = result[0];
var disp = result[1];

document.getElementById('precioTotal').innerHTML = document.getElementById('unidades').value * document.getElementById('precio').value;
alert(document.getElementById('referencia').innerH TML);
document.getElementById('referencia').innerHTML = ref;
document.getElementById('referenciaInput').value = ref;
document.getElementById('disponibilidad').innerHTM L = disp;
} else {
alert('Ha ocurrido un error al intentar recuperar los datos. Código de error HTTP: ' + oXmlHttp.status);
}
}
};
oXmlHttp.send(null);
}

Saludos
  #12 (permalink)  
Antiguo 01/09/2008, 00:34
gao
 
Fecha de Ingreso: agosto-2008
Mensajes: 8
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Problema con innerHTML en IE

Bueno... ya lo he solucionado... el div tenia un id="referencia", lo he cambiado por id="ref". Además, la variable en javascript se llama ref y la he cambiado a referencia. Con esto funciona....

¿Alguien sabe alguna guía por la que nos podamos regir para que todo funcione tanto en IE como en Firefox como en cualquier otro? Es un follón estar programando para dos y cuando crees que lo q estas haciendo es estándar, q te den fallos como este...

Saludos y gracias por todo
  #13 (permalink)  
Antiguo 27/09/2008, 20:28
Avatar de Vane23  
Fecha de Ingreso: julio-2008
Mensajes: 32
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: Problema con innerHTML en IE

disculpen que me meta jeje pero yo tenía un problema parecido y quiero agradecer porque ya me estaba molestando "un poco" este explorer, por ningún lado encontraba una respuesta y con esto que comentas (ids-variables) Panino lo he resuelto, gracias y salu2
  #14 (permalink)  
Antiguo 26/04/2009, 08:46
Avatar de minkweb  
Fecha de Ingreso: septiembre-2005
Mensajes: 443
Antigüedad: 18 años, 7 meses
Puntos: 14
Respuesta: Problema con innerHTML en IE

Sobre este tema queria aportar algo, en mi caso me continuo ocurriendo y era por que estaba usando <spam> con un id y IE no lo reconocia moz si

Saludos
__________________
Juegos
Juegos iphone
  #15 (permalink)  
Antiguo 20/12/2011, 11:28
 
Fecha de Ingreso: junio-2011
Mensajes: 45
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Problema con innerHTML en IE

Muchas gracias

A mi tambien me sirvio este tema y mucho :)

Queria apuntar que en mi caso no pude llamarle inter a una id (id="inter") porque habia una linea en un comentario:

<!--<input type="text" size="8" name="inter" value="00:00:00.00 ">-->

al hacer un getElementById('inter') no tenia efecto alguno.

Le puse id="pantallainter" y getElementById('pantallainter') y a funcionar.
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 14:18.