Foros del Web » Programando para Internet » Javascript »

Objeto document dentro de otro en Firefox 3.0

Estas en el tema de Objeto document dentro de otro en Firefox 3.0 en el foro de Javascript en Foros del Web. Hola a toda la comunidad de Foros del Web... quisiera que me ayuden con este problema, tengo la siguiente porcion de codigo javascript, cuya finalidad ...
  #1 (permalink)  
Antiguo 25/07/2008, 21:04
 
Fecha de Ingreso: julio-2008
Mensajes: 6
Antigüedad: 15 años, 9 meses
Puntos: 0
Objeto document dentro de otro en Firefox 3.0

Hola a toda la comunidad de Foros del Web... quisiera que me ayuden con este problema, tengo la siguiente porcion de codigo javascript, cuya finalidad es manipular las propiedades de un tag TABLE (<table>) que se encuentra dentro de un tag DIV. El codigo es el siguiente:

function abc(DivId,TableId){
ObjDiv=document.getElementById(DivId);
ObjInnerTable=ObjDiv.document.getElementById(Table Id);
...
}

La llamada a funcion la hago por medio del evento click en un boton asi:

onclick="javascript:abc('Div1','Table1');"

La estructura html sobre la cual estoy queriendo aplicar el codigo javascript es la siguiente:

<div id="Div1">
<table id="Table1">
...
</table>
</div>

Al ejecutar esto en Internet Explorer no hay problemas (como es de esperarse) y puedo utilizar el objeto ObjInnerTable para jugar con las propiedades del table. Ahora, para variar, el problema es en FIREFOX en la version 3.0... el problema lo detecta justamente al tratar de ejecutar la segunda linea dentro de la funcion abc(), o sea en:

ObjInnerTable=ObjDiv.document.getElementById(Table Id);

El mensaje de se muestra en la consola de error de FireFox es:

ObjDiv.document is undefined

La primera linea de codigo dentro de la funcion si ejecuta correctamente en Firefox y si hago alert(ObjDiv) me muestra el mensaje "[Object]", lo cual me indica que el codigo de esa linea esta bien, pero la siguiente es el problema como lo mencione anteriormente. He intentado reemplazar 'document' por 'window' pero el problema persiste, dandome un mensaje de error diferente pero persiste. He intentado tambien suprimiendo 'document' dejando unicamente:
ObjInnerTable=ObjDiv.getElementById(TableId);
pero tampoco funciona.
Alguien podria ayudarme con el codigo correcto para que esto funcione en ambos navegadores?

Saludos a todos.
  #2 (permalink)  
Antiguo 25/07/2008, 21:15
Avatar de xbx
xbx
 
Fecha de Ingreso: mayo-2008
Ubicación: /home/xbx
Mensajes: 301
Antigüedad: 16 años
Puntos: 11
Respuesta: Objeto document dentro de otro en Firefox 3.0

Hola ajarrin,

Gracias a que los id son tratados como únicos en todo el documento, es posible obtenerlos sin tener que saber cuál es el otro elemento que lo contiente.

Con lo cual, la linea problemática queda de la siguiente manera:
ObjInnerTable=document.getElementById(TableId);

Firefox tiene razon al mostrar ese error, debido a que un elemento DOM como lo es un 'div' no contiene un objeto document.

Cita:
Al ejecutar esto en Internet Explorer no hay problemas (como es de esperarse)
Disculpa, pero no estoy de acuerdo.
Yo voto por hacer que todos los programadores nos atengamos a las especificaciones de W3C. Lo cual IE no es tan partidario de eso (microsoft y sus jugadas comerciales )

Saludos!!!

--editado--
Bienvenido a FDW!!!
  #3 (permalink)  
Antiguo 26/07/2008, 10:44
 
Fecha de Ingreso: julio-2008
Mensajes: 6
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Objeto document dentro de otro en Firefox 3.0

Hola Roberto,

la verdad es que tienes toda la razon... asi es como funciono!!.. no se que me paso que me olvide de los conceptos basicos de que los id son unicos en el documento, lo que pasa es que me confunci con la idea de la estructura de nodos en un documento.. pero en fin muchisimas gracias!!!!

Saludos.
  #4 (permalink)  
Antiguo 26/07/2008, 11:03
Avatar de xbx
xbx
 
Fecha de Ingreso: mayo-2008
Ubicación: /home/xbx
Mensajes: 301
Antigüedad: 16 años
Puntos: 11
Respuesta: Objeto document dentro de otro en Firefox 3.0

Hola ajarrin,

De nada!!
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 03:04.