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

cs_thibault31 Messages postés 28 Date d'inscription dimanche 2 janvier 2005 Statut Membre Dernière intervention 11 décembre 2005 - 27 avril 2005 à 23:14
chimelpremier Messages postés 544 Date d'inscription vendredi 5 décembre 2003 Statut Membre Dernière intervention 20 mai 2005 - 28 avril 2005 à 01:43
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

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

pour les autres:
window.innerHeight
0
cs_thibault31 Messages postés 28 Date d'inscription dimanche 2 janvier 2005 Statut Membre Dernière intervention 11 décembre 2005
28 avril 2005 à 00:27
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 ?
0
chimelpremier Messages postés 544 Date d'inscription vendredi 5 décembre 2003 Statut Membre Dernière intervention 20 mai 2005
28 avril 2005 à 00:30
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
0
chimelpremier Messages postés 544 Date d'inscription vendredi 5 décembre 2003 Statut Membre Dernière intervention 20 mai 2005
28 avril 2005 à 00:56
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_thibault31 Messages postés 28 Date d'inscription dimanche 2 janvier 2005 Statut Membre Dernière intervention 11 décembre 2005
28 avril 2005 à 01:08
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...
0
chimelpremier Messages postés 544 Date d'inscription vendredi 5 décembre 2003 Statut Membre Dernière intervention 20 mai 2005
28 avril 2005 à 01:08
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
0
chimelpremier Messages postés 544 Date d'inscription vendredi 5 décembre 2003 Statut Membre Dernière intervention 20 mai 2005
28 avril 2005 à 01:25
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.
0
cs_thibault31 Messages postés 28 Date d'inscription dimanche 2 janvier 2005 Statut Membre Dernière intervention 11 décembre 2005
28 avril 2005 à 01:31
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 ?
0
chimelpremier Messages postés 544 Date d'inscription vendredi 5 décembre 2003 Statut Membre Dernière intervention 20 mai 2005
28 avril 2005 à 01:43
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
0
Rejoignez-nous