Re: Navigateurs, Javascript et résolution d'écran

Page principale

Répondre à ce message
Auteur: Olivier Allard-Jacquin
Date:  
À: ML Guilde
Sujet: Re: Navigateurs, Javascript et résolution d'écran
    Bonsoir

Marc BERLIOUX a écrit :
> sur cette page :
>
> http://www.w3schools.com/js/tryit.asp?filename=tryjs_browsermonitor
>
> avec konqueror, j'obtiens
> Screen resolution: 1680*1050
> Available view area: 1680*989
>
> avec firefox, j'obtiens
> Screen resolution: 1120*700
> Available view area: 1120*700
>
> où les navigateurs prennent-ils ces infos ?


    Auprès de X je suppose.


> pourquoi à votre avis Firefox se trompe ?


    Est-ce lui qui se trompe ? Ou le code Javascript qui est sur la gauche
(je l'ai modifié, cf informations plus bas) ?


<extrait>
<html>
<body>

<script type="text/javascript">
document.write("Screen resolution: ");
document.write(screen.width + "*" + screen.height);
document.write("<br />");
document.write("Available view area: ");
document.write(screen.availWidth + "*" + screen.availHeight);
document.write("<br />");
document.write("Color depth: ");
document.write(screen.colorDepth);
document.write("<br />");
document.write("Buffer depth: ");
document.write(screen.bufferDepth);
document.write("<br />");
document.write("DeviceXDPI: ");
document.write(screen.deviceXDPI);
document.write("<br />");
document.write("DeviceYDPI: ");
document.write(screen.deviceYDPI);
document.write("<br />");
document.write("LogicalXDPI: ");
document.write(screen.logicalXDPI);
document.write("<br />");
document.write("LogicalYDPI: ");
document.write(screen.logicalYDPI);
document.write("<br />");
document.write("FontSmoothingEnabled: ");
document.write(screen.fontSmoothingEnabled);
document.write("<br />");
document.write("PixelDepth: ");
document.write(screen.pixelDepth);
document.write("<br />");
document.write("UpdateInterval: ");
document.write(screen.updateInterval);
document.write("<br />");
</script>

</body>
</html>
</extrait>

    Si tu remplaces le :


document.write("Available view area: ");
document.write(screen.availWidth + "*" + screen.availHeight);

par :

document.write("Available view area: ");
document.write(window.innerWidth + "*" + window.innerHeight);
               ^^^^^^                    ^^^^^^


la réponse s'approche plus, au sens lexical, d'un "Available view area".
C'est à dire, la partie utilisable, par le code HTML, pour afficher le
contenu "utile" à l'écran (*).

    Ce qui est plus logique d'ailleurs :
- l'objet "screen", c'est pour la taille de l'écran
- l'objet "window", c'est pour la surface utilisable par le HTML, c'est
à dire la surface de la fenêtre du navigateur, moins les boutons,
barres, menus et ascenseurs.


    Personnellement, j'ai déjà eu à devoir exploiter les fonctions
Javascript pour savoir quelle était la largeur/hauteur que je pouvais
utiliser comme surface d'affichage HTML. Et j'ai utilisé l'objet
"window" au lieu de "screen".


(*): A noter que le "window.innerHeight" reste toujours le même (400).
Je pense que c'est le fait de l'environnement de test, et notamment du
cadre vert (il fait presque 400 pixels de haut).


    Cordialement,


                        Olivier
-- 
~~~~~~~  _____/\_____  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Phoenix /   _ \/ _   \    Olivier Allard-Jacquin
       /   / \  / \   \   Web:  http://olivieraj.free.fr/
      /___/  /  \  \___\  Mail: olivieraj@???
~~~~ /////  ///\\\  \\\\\ ~~~~~~~~~~~~~~~~~~~~~~~ Linux Powered !!