Firefox et height : pas d'accord!

Résolu/Fermé
Bakinfors Messages postés 9 Date d'inscription lundi 24 mars 2008 Statut Membre Dernière intervention 6 juillet 2008 - 25 mars 2008 à 00:09
 Tipoisse - 17 juil. 2008 à 23:28
Bonjour,
Je vous explique un peu mon problème. Je suis en train de faire un site (si je poste dans cette section, en même temps...), et je rencontre un problème avec la hauteur d'une de mes div. En fait, dans la déclaration du style, je ne lui mets aucune hauteur : celle-ci est définie grâce une fonction javascript qui l'adapte à la résolution du visiteur. Jusque là, pas de problème... ou presque. En fait, cette formule fonctionne parfaitement sous IE7, mais plante sous Firefox. Je vous donne le code :
<div class="main"><iframe id="mainframe" name="mainFrame" align="middle" src="mainFrame.html" width="100%" frameborder="0"></iframe> 
<script type="text/javascript">
var hauteur = screen.height - 320 ;
parseInt(hauteur);
document.getElementById('mainframe').style.height = hauteur;
</script>
</div>

Dans la console d'erreur de Firefox, j'ai le message suivant : "Avertissement : Erreur d'analyse de la valeur pour la propriété « height ». Déclaration abandonnée."
Quelqu'un aurait-il une solution miracle pour faire marcher ce script sous FF ? Merci d'avance
A voir également:

5 réponses

carbon3 Messages postés 470 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 6 janvier 2013 73
25 mars 2008 à 07:38
salut, si je me goure pas, FF ne reconnaît pas screen.Height. D'où un -320 en sortie...
utilise plutôt document.body.clientHeight (reconnue par IE, FF et Opera) qui correspond à la taille de la fenêtre affichable du navigateur. C'est plus cohérent dans la mesure ou les internautes ont plus où moins de barres d'outils et autres.
0
Bakinfors Messages postés 9 Date d'inscription lundi 24 mars 2008 Statut Membre Dernière intervention 6 juillet 2008
25 mars 2008 à 13:03
Salut !
Merci d'avoir répondu et de te pencher sur mon problème. Dans mon script, j'ai remplacé screen.height par document.body.clientHeight comme conseillé, pour avoir ceci à la fin :
<div class="main"><iframe id="mainframe" name="mainFrame" align="middle" src="mainFrame.html" width="100%" frameborder="0"></iframe> 
<script type="text/javascript">
var hauteur = document.body.clientHeight -70;
parseInt(hauteur);
document.getElementById('mainframe').style.height = hauteur;
</script>
</div>

Malheureusement, même si ça continue de fonctionner sur IE, ça ne passe toujours pas sur Firefox (même message d'erreur dans la console). Je commence à me demander si c'est pas la commande "document.getElementById('mainframe').style.height" qui pose problème, mais je ne sais pas par quoi la remplacer... En fouillant sur le net, j'ai vu qu'en fonction du Doctype, il fallait peut-être utiliser "document.documentElement.clientHeight" à la place de ce que tu m'as dit, mais ça ne fonctionne aussi que sous IE... Snif ! Aurais-tu une autre idée, ou une correction a apporter ?
0
carbon3 Messages postés 470 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 6 janvier 2013 73
25 mars 2008 à 14:57
je viens de faire tourner la portion de code que as fournie et je ne reçois pas de msg d'erreur...
Ton problème vient peut-être d'une autre déclaration de height ?
0
Bakinfors Messages postés 9 Date d'inscription lundi 24 mars 2008 Statut Membre Dernière intervention 6 juillet 2008
27 mars 2008 à 00:45
Si, c'était bien ça... En fait, j'ai viré le javascript et je me suis concentré sur mes styles css... et ça passe beaucoup mieux ! Merci encore du coup de main !
0
carbon3 Messages postés 470 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 6 janvier 2013 73
27 mars 2008 à 00:48
salut,
Oui, c'est une façon de refaire les choses, mais ce n'est plus dynamique ;-)
0
Bakinfors Messages postés 9 Date d'inscription lundi 24 mars 2008 Statut Membre Dernière intervention 6 juillet 2008
27 mars 2008 à 00:50
C'est vrai que ça ne tient plus compte de l'espace libre sur le navigateur (une fois enlevée les différentes barres de menu) mais en utilisant les pourcentages pour mon height, ça reste quand même un peu dynamique...
0
carbon3 Messages postés 470 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 6 janvier 2013 73
27 mars 2008 à 00:51
bravo d'y penser
0

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

Posez votre question
Erreur :
document.getElementById('mainframe').style.height = hauteur;

Bonne pratique :
document.getElementById('mainframe').style.height = hauteur + "px";

**Le style est comme le CSS il peut être définie en pixel, %, etc..., mais écris tout seul firefox ne le reconnaît pas alors que IE, lui, le reconnaît.
0