Foros del Web » Programando para Internet » Javascript »

getElementById no funciona IE8

Estas en el tema de getElementById no funciona IE8 en el foro de Javascript en Foros del Web. Saludos a todos. Ante nada decir que soy novato en esto y agradezco de antemano cualquier ayuda que alguien pueda ofrecerme. La cuestión es que ...
  #1 (permalink)  
Antiguo 23/03/2009, 07:25
 
Fecha de Ingreso: marzo-2009
Mensajes: 2
Antigüedad: 15 años, 1 mes
Puntos: 0
getElementById no funciona IE8

Saludos a todos. Ante nada decir que soy novato en esto y agradezco de antemano cualquier ayuda que alguien pueda ofrecerme.

La cuestión es que estoy trabajando en una página web y ni con mozilla ni con opera he tenido ningún error. Pero con internet explorer se carga la página con un error:

Mensaje: 'document.getElementById(...)' es nulo o no es un objeto

Creo que he conseguido de dónde viene y el código es el siguiente:

-----------------------------------------------------------------------------------------------------
sfHover = function() {
var sfEls = document.getElementById("nav").getElementsByTagNam e("LI");
for (var i=0; i<sfEls.length; i++) {
sfEls[i].onmouseover=function() {
this.className+=" sfhover";
}
sfEls[i].onmouseout=function() {
this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
}
}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);
------------------------------------------------------------------------------------------------------

¿alguien me podría aclarar por qué ocurre?

PD: He utilizado Joomla para empezar a diseñar webs sencillitas.
  #2 (permalink)  
Antiguo 23/03/2009, 07:27
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
Respuesta: getElementById no funciona IE8

Lo que quizá no te funcione es this, que para explorer, en ese contexto apunta a window.
  #3 (permalink)  
Antiguo 23/03/2009, 07:29
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: getElementById no funciona IE8

Otra idea... Existe realmente el elemento de id="nav"?
  #4 (permalink)  
Antiguo 23/03/2009, 07:38
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
Respuesta: getElementById no funciona IE8

Sí, tiene razón venkman, pensé que estabas incluyendo los eventos también con attachEvent
(Olvidate de lo que dije.)
  #5 (permalink)  
Antiguo 23/03/2009, 13:27
 
Fecha de Ingreso: marzo-2009
Mensajes: 2
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: getElementById no funciona IE8

Bueno, primero gracias por responder.
Y luego que, como dije, soy novato en esto, por ello no te puedo contestar si existe dicho elemento. Con el aviso de error me indicaba el archivo que lo desencadenaba, cuyo código copié.
¿Cómo puedo saber si existe tal elemento? Será una variable de otro archivo,¿no?
¿Y si con mozilla/opera funciona, no indica que ese "nav" existe?

Gracias por vuestro tiempo.
Un saludo.
  #6 (permalink)  
Antiguo 23/03/2009, 13:58
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: getElementById no funciona IE8

Mmm... Se trata de un elemento html. Es decir, lo que hace getElementById es buscar en el html un elemento como <tag id="nav">. Para saber si existe, tendrás que mirar el HTML de la página.

Y sólo te da error en IE porque ese código sólo se ejecuta en IE. Ese if (window.attachEvent) sólo es true en IE.
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 07:23.