Estoy trabajando en una aplicación web que está dirigida a navegadores en computadoras de escritorio, tabletas y teléfonos inteligentes.screen.width del navegador de Android, screen.height & window.innerWidth & window.innerHeight no son confiables
La aplicación web tiene una caja de luz implementada usando Colorbox con iframe
. Cuando se cambia el tamaño de la ventana del navegador o se cambia la orientación de la tableta/teléfono, el código JavaScript consulta las dimensiones de la ventana para que pueda cambiar el tamaño de algunos elementos de la caja de luz.
El problema que estoy teniendo es que todo funciona bien en el escritorio (Windows: IE, Firefox, Chrome, Mac: Safari), iPad & iPhone pero no en el teléfono inteligente Android (HTC) y Android Emulator.
Android siempre devuelve valores diferentes para screen.width
, screen.height
, window.innerWidth
& window.innerHeight
cuando se les preguntó desde el interior de evento de cambio de tamaño de la ventana, que dispara varias veces.
¿Por qué el navegador de Android devuelve una variación tan amplia en los valores y cómo puedo detectar de manera confiable el ancho y alto de la ventana del navegador?
No hay una manera confiable (todavía). Sin embargo, escuchar el cambio de tamaño y esperar unos pocos (100) milisegundos suele ser suficiente para que las propiedades se configuren correctamente en el 99% del tiempo. También es importante establecer la vista y los ppp de destino como metaetiquetas. –