Android écran du navigateur.largeur de l'écran.hauteur & de la fenêtre.innerWidth & de la fenêtre.innerHeight ne sont pas fiables

Je travaille sur une application web qui est destiné aux navigateurs sur ordinateur, tablette et smartphone.

L'application web a une boîte à lumière mis en œuvre à l'aide de Colorbox avec un iframe. Lorsque la fenêtre du navigateur est redimensionnée ou la tablette/téléphone a changé d'orientation, du code Javascript interroge les dimensions de la fenêtre de sorte qu'il peut redimensionner certains éléments de la boîte à lumière.

La question que je vais avoir, c'est que tout fonctionne bien sur le bureau (Windows: internet explorer, Firefox, Chrome, Mac: Safari), iPad & iPhone, mais pas sur les smartphones Android (HTC) et l'Émulateur Android.

Android retourne toujours des valeurs différentes pour screen.width, screen.height, window.innerWidth & window.innerHeight lorsqu'elles sont interrogées à partir de l'intérieur de la fenêtre de redimensionnement de l'événement, qui se déclenche plusieurs fois.

Pourquoi le navigateur Android restitution de ces une large variation dans les valeurs et comment puis-je détecter de manière fiable la largeur et la hauteur de la fenêtre du navigateur?

  • Il n'y a aucun moyen fiable (encore). Cependant, l'écoute de redimensionner et d'attendre un peu (100) millisecondes est généralement suffisant pour les propriétés à définir correctement dans 99% du temps. Il est également important de définir la fenêtre d'affichage et la cible dpi balises meta.