iframe div et getElementById

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
zaxx
Arias
Messages : 1
Inscription : 17 avr. 2005, 20:01

iframe div et getElementById

Message par zaxx »

bonjour

voici un drole de probleme
j ais une page avec un div en style="display:none"
dans se div j ais une iframe avec " height=0"
en fin de la page iframe je fait un

var nHauteur = top.document.getElementById('monIframe').contentWindow.document.body.scrollHeight;
top.document.getElementById('monIframe').style.height = nHauteur;

pour redimensioner mon iframe a la bonne taille

et sur la pagep rincipale j'ai un bouton qui met le div en style="display:none".

sur ie pas de probleme il me fait apparaitre l'iframe et a la bonne taille

sous fire fox pax de messaged'erreur dans la console javascript et div reste a zero, en revanche si je met le div en "display:block" au depart
la c'est ok

c'est comme si que le faite que div etant en "none" il ne veut pas me mettre l'iframe en taille

voile j espere avoir était a c claire
car sous ie sa marche mais j aime trop fire fox

zaxx@vandenostende.net
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Re: iframe div et getElementById

Message par calimo »

zaxx a écrit :et sur la pagep rincipale j'ai un bouton qui met le div en style="display:none".
Donc il ne change rien ?
zaxx a écrit :sur ie pas de probleme il me fait apparaitre l'iframe et a la bonne taille
Ben c'est pas normal si tu mets un display:none sur un parent :?

On peut avoir une démo en ligne ?
Invité

Message par Invité »

oui oui
sur
http://www.vacances-artes-voyages.com/test.php

sous ie c oki
pas sous firefox :s

je cherche a faire un reload apres un "block" sur le div pour voir si cela pourais resoudre ma problematique

merci

Code : Tout sélectionner


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script>
function testing()
{

var nHauteur = document.getElementById('moniframe').contentWindow.document.body.scrollHeight;
alert("taille de l iframe : "+nHauteur);
document.getElementById('moniframe').style.height = nHauteur;

document.getElementById('test').style.display = "block";
}
</script>
</head>

<body>
<p>&nbsp;</p>
<p><a href="javascript:testing()">Cliquez ici pour afficher l iframe </a></p>
<div style="display:nosne" id="test">
<table width="500" border="0" cellpadding="0" cellspacing="0" style="border-style:solid;border-width:1px;border-top-color:#666666;border-right-color:#666666;border-left-color:#666666;border-bottom-color:#666666">
  <tr>
    <td bgcolor="#FFCC00">
	
	
	
	 <iframe src="iframe2.php" id="moniframe" marginheight=0 marginwidth=0 width=100% height=0 scrolling=no frameborder=0></iframe></td>
  </tr>
</table></div>


</body>
</html>
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Quelques pistes :
  1. Déjà ce n'est pas

    Code : Tout sélectionner

    style="display:nosne"
    mais

    Code : Tout sélectionner

    style="display:none"
    (il y a un "s" en trop).
    Ce n'est pas anodin, parce qu'il reste une barre grise qu'on peut voir et qui disparaît quand on corrige ceci
  2. Quelle est l'unité de la hauteur ? :roll:
    Ça aussi c'est important. On te l'as assez répété aux cours de physique non ? Il faut toujours indiquer des unités. Ici Firefox ne peut pas savoir si tu veux 200 choux ou 200 km...
  3. Une fois que tu as corrigé le display:nosne, tu vois que la hauteur vaut maintenant... 0 !
    Il faut dire que contentWindow est propriétaire d'IE (même si visiblement il est aussi supporté par Mozilla. Je te conseille de trouver autre chose...
  4. De plus l'iframe n'étant pas affichée elle ne peut pas avoir une hauteur non nulle. Donc

    Code : Tout sélectionner

    contentWindow.document.body.scrollHeight
    vaut forcément 0... tu ne pense pas ?
Invité

Message par Invité »

ge trouver un solution

je met le div en block

puis un reload de l'iframe

par

Code : Tout sélectionner

function opentarif(nom)
{
document.getElementById(nom).contentWindow.document.location.reload()

}
suis pas sure que cela soit la meilleur soluce mais sa marche

++
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités