Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   HTML, Javascript y otros (https://www.clubdelphi.com/foros/forumdisplay.php?f=38)
-   -   getElementById no accede a elementos no visibles (https://www.clubdelphi.com/foros/showthread.php?t=89064)

WPascal 22-09-2015 17:28:00

getElementById no accede a elementos no visibles
 
Buenos días a todos, estoy trabajando con una aplicación web hecha en Javascript por otras personas, se trata de una especie de hoja de cálculo basada en una tabla, algunas celdas de la tabla no se ven por tanto hay que usar la barra de desplazamiento para verlas, el problema que tengo es que cuando intento acceder al contenido de algún elemento <td> mediante document.getElementById("celda_A5") por ejemplo, si la celda está visible al usuario logra acceder sin problemas, pero si en el momento no es visible, no encuentra dicha celda, como si no existiera, en el momento que muevo la barra de desplazamiento y hago visible la celda, nuevamente es reconocida, es como si cuando un elemento no es visible en pantalla, la función getElementById no lograra "verlo", entonces quisiera su ayuda y que me dijeran cómo solucionar esto, teniendo en cuenta que es un programa desarrollado por otro programador y no sé si hizo algo para que esto ocurriera, tal vez buscando optimizar la aplicación.
Gracias de antemano y que tenga buen día.

dec 22-09-2015 17:55:27

Hola,

Prueba con el depurador de tu navegador para ver qué puede estar fallando: que el elemento no esté visible en la pantalla no quiere decir que no pueda seleccionarse, como puedes ver en el este "Fiddle" de prueba, donde, pulsando el botón que verás en pantalla (marco HTML), se cambia el color de un elemento de texto que no está visible.

WPascal 22-09-2015 18:05:12

Hola Dec, eso mismo pienso yo, por eso quería saber si hay alguna manera en que se pueda generar este comportamiento intencionalmente, por ejemplo para optimizar la carga de la página, puesto que si son por ejemplo 1000 celdas, solo tenga en memoria las 100 visibles y las cargue nuevamente cuando el usuario necesite verlas. Si existe este procedimiento, buscarlo en el código de la aplicación y desactivarlo.

WPascal 22-09-2015 18:09:39

Y ya anteriormente había usado el depurador y efectivamente cuando la celda no está visible lanza como resultado "null", o sea que no exite ninguna celda con ese id


La franja horaria es GMT +2. Ahora son las 09:52:38.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi