Firefox et height : pas d'accord!

Résolu
Bakinfors Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -  
 Tipoisse -
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   Statut Membre Dernière intervention   73
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   73
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   73
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   73
 
bravo d'y penser
0

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

Posez votre question
Tipoisse
 
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