Récupérer la hauteur en pixel de la fenêtre visible dans le browser

Signaler
Messages postés
28
Date d'inscription
dimanche 2 janvier 2005
Statut
Membre
Dernière intervention
11 décembre 2005
-
Messages postés
544
Date d'inscription
vendredi 5 décembre 2003
Statut
Membre
Dernière intervention
20 mai 2005
-
la fonction "screen.width" permet de récupérer la résolution de l'écran de l'ordinateur si j'ai bien suivi...

Moi je cherche à récuper la hauteur de la zone disponible dans le
browzer pour afficher ma page web. J'en ai besoin pour redimentionner
la hauteur d'un cadre en fonction de la résolution de l'écran. En plus
cette hauteur varie suivant les browsers, des barres de menus en plus,
que le browser est en plein écran ou pas, etc... donc la solution du %
ne marche pas !



Quelqu'un saurait quelle fonction je peut utiliser pour faire çà ?



Merci d'avance...

9 réponses

Messages postés
544
Date d'inscription
vendredi 5 décembre 2003
Statut
Membre
Dernière intervention
20 mai 2005
1
pour IE :
document.body..clientHeight
ou avec certains Doctype:
document.documentElement..clientHeight

pour les autres:
window.innerHeight
Messages postés
28
Date d'inscription
dimanche 2 janvier 2005
Statut
Membre
Dernière intervention
11 décembre 2005

Merci pour la réponse !!!!

Comment on fait pour tester le browser utilisé ?



Imaginons que je veux récupérer cette hauteur dans la variable "toto"... je dois écrire quoi comme script ?
Messages postés
544
Date d'inscription
vendredi 5 décembre 2003
Statut
Membre
Dernière intervention
20 mai 2005
1
J'ai fait des erreurs de frappe : points en trop.

Dans mes scripts je l'écrit comme ceci pour détecter la bonne formule IE :

de=!D.documentElement.clientWidth?D.body:D.documentElement //exception IE6
fy=gk?innerHeight:de.clientHeight //h fenêtre
Messages postés
544
Date d'inscription
vendredi 5 décembre 2003
Statut
Membre
Dernière intervention
20 mai 2005
1
encore été trop vite, j'ai oublié la détection du browser :

gk=window.Event?1:0;// Gecko
D=document;

On peut aussi mettre
ie=D.all, mais Opéra accepte les 2 et je pense qu'il est préférable de l'orienter sur le code gecko
Messages postés
28
Date d'inscription
dimanche 2 janvier 2005
Statut
Membre
Dernière intervention
11 décembre 2005

Je crois avoir trouvé depuis...



Voilà mon code final, le but étant de calculer la hauteur d'un calque en fonction de la résolution de l'écran :



<script language="JavaScript" type="text/JavaScript">

<!--

function MM_reloadPage(init) { //reloads the window if Nav4 resized

if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {

document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}

else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();

}

MM_reloadPage(true);

//-->

function RedimLayer()

{

toto=document.body.clientHeight

{

calque.style.height = toto - 194;

}

}

</script>

</head>









Est-ce que ce code va marcher avec tous les browser selon toi ? J'ai déjà testé sur IE 6 et Firefox, çà fonctionne !!!!!! SUPER

Mais sur des versions antérieures de IE ou Netscape ??? T'en pesnes quoi ?



Merci pour ton aide en tout cas...
Messages postés
544
Date d'inscription
vendredi 5 décembre 2003
Statut
Membre
Dernière intervention
20 mai 2005
1
Décidément, je réponds de travers. Ce que je t'ai donné, c'est la hauteur
de la fenêtre ou se trouve ta page. Tu as fait mention de screen.width qui est
la largeur de l'écran et tu demande la hauteur utile de l'écran.
C'est screen.availHeight. Mais je ne l'utilise pas car je l'avait testé il y a
longtemps et ça n'était pas fiable sur certains navigateurs. A revérifier
Messages postés
544
Date d'inscription
vendredi 5 décembre 2003
Statut
Membre
Dernière intervention
20 mai 2005
1
Nos réponses se croisent.
Ta solution recharge la page pour le navigateur NS4 uniquement.

Pour ta fonction RedimLayer() tu devrais remplacer toto par fy cité plus haut.
Messages postés
28
Date d'inscription
dimanche 2 janvier 2005
Statut
Membre
Dernière intervention
11 décembre 2005

Je comprend pas bien ce que tu me racontes... je suis pas un pro du java



Tu peux modifier mon code en conscéquence pour intégrer ta modif ? Elle
permet de rendre mon script valable pour tous les navigatuers ?
Messages postés
544
Date d'inscription
vendredi 5 décembre 2003
Statut
Membre
Dernière intervention
20 mai 2005
1
En fait, si tu avais besoin que ton calque soit à la hauteur de la fenêtre - 194px
uniquement pour IE.
Dans ce cas, ta formule est la bonne. Vérifie seulement sur Opéra si c'est
bon aussi.
Je pense aussi que ton problème de hauteur est peut-être aussi un bug IE qui se rédoud avec un Doctype.
J'espère qu'on se comprends maintenant.
Salut