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

Top Page

Reply to this message
Author: Olivier Allard-Jacquin
Date:  
To: ML Guilde
Subject: 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 !!