Les Allergies
Alimentaires
Posez votre question Signaler

Pb avec <iframe height="100%"> sou

TheNox 59Messages postés 5 décembre 2003Date d'inscription - Dernière réponse le 8 sept. 2011 à 19:50
Salut à tous

J'aimerais savoir pourquoi le script

<iframe height="100%" src="..."> blabla </iframe> ne fonctionne pas sous firefox
Il ignore "height" à 100%. Pareil pour "width".


Sous IE, ca marche bien

Comment faire pour avoir compatibilité avec ie et firefox ?

Merci !

<TheNox> :-)
Lire la suite 

Pb avec <iframe height="100%"> sou »

6 réponses
Réponse
+8
moins plus
Voici les solutions que je te propose suivant le navigateur et le domaine (sécurité) dans lequel s'execute ton code..


En espérant que tu trouves ton bonheur ou que ca te mette sur la bonne voie ..

@+

REM :
PERSO : j'ai finalement opté pour un code en dure (cf. demo en live : http://www.weboose.fr/sponsors/test_iframe.htm )

---------------------------------------
** solution 1 (uniquement sous ie et pas firefox)

tu indiques des height et width en dure, ex : <iframe height=800 (au lieu de height=100%)
- marche pas sous firefox malheureusement

---------------------------------------
**solution 2 (uniquement sous ie)

Si tu ne connais encore la taille que le contenu de ta frame prendra, tu peux aussi le définir en dure a partir de ta frame plutot qu'a partir du parent...


code du PARENT (dans le body) :

<iframe src="http://www.weboose.fr/sponsors/sponsorsx.htm" id="sponsorFrame" mame="sponsorFrame" scrolling="auto" frameborder="0"></iframe>



code dans la page appellée par la FRAME (avant le <body> de la page appellée dans l'iframe) :


<script type="text/javascript">
maframe = parent.document.getElementById('sponsorFrame');// frame in the parent
function ExecuteOnload()
{
alert("Apres ce message, l'Iframe va s'agrandir..");
maframe.style.height = "800";
maframe.style.width = "800";
}
</script>
<body onload="ExecuteOnload();">

---------------------------------------
**solution 3 (marche sous ie ET FIREFOX !) :

code du PARENT (dans le body) :

<iframe src="http://www.weboose.com/sponsors/sponsorsx.htm" id="sponsorFrame" mame="sponsorFrame" width="100%" scrolling="auto" frameborder="0"></iframe>

code dans la page appellée par la FRAME (avant le <body> de la page appellée dans l'iframe) :

<script type="text/javascript">
maframe = parent.document.getElementById('sponsorFrame');// frame in the parent

function resizeIframe() {
var height = parent.document.documentElement.clientHeight;//document.documentElement.clientHeight;
height -= maframe.offsetTop;
height -= 20; /* whatever you set your body bottom margin/padding to be */
maframe.style.height = height +"px";
};

maframe.onload = resizeIframe;
window.onresize = resizeIframe;
</script>


REM ! Attention cpdt, il faut également que parent et frame cible soit soit sous le meme domaine sinon il peut y avoir un "access denied" qui s'opere lors d'un crossdomaine et empeche alors l'execution normal du code
(http://msdn.microsoft.com/en-us/library/ms533028(VS.85).aspx)

---------------------------------------
**solution 4 (marche sous ie ET FIREFOX !) :

Code à inclure directement dans la page parent dans le body

<body onload="resizeIframe();">
<script type="text/javascript">
function resizeIframe()
{
maframe = document.getElementById('sponsorFrame');// frame in the parent
maframe.style.height = maframe.contentWindow.document.body.scrollHeight+"px"; //changement de la hauteur
maframe.style.width = maframe.contentWindow.document.body.scrollWidth+"px"; //changement de la largeur
}
</script>
<iframe src="http://www.weboose.com/sponsors/sponsorsx.htm" id="sponsorFrame" name="sponsorFrame" WIDTH="100%" HEIGHT="100%" frameborder="0" scrolling="no"></iframe>

REM ! Attention cpdt, il faut également que parent et frame cible soit soit sous le meme domaine sinon il peut y avoir un "access denied" qui s'opere lors d'un crossdomaine et empeche alors l'execution normal du code
(http://msdn.microsoft.com/en-us/library/ms533028(VS.85).aspx)


REM . une maniere de contourner le pb de sécurité précédent et avoir un code qui fonctionne a la fois dans ie et firefox serait de réécrire en dure la fonction précédente comme ceci :

function resizeIframe()
{
maframe = document.getElementById('sponsorFrame');// frame in the parent
maframe.style.height = "800";//maframe.contentWindow.document.body.scrollHeight+"px"; //changement de la hauteur
maframe.style.width = "100%";//maframe.contentWindow.document.body.scrollWidth+"px"; //changement de la largeur
}
Ajouter un commentaire
Réponse
+0
moins plus
Hi

Déjà c'est pas un script! et de plus sur IE sa ne marche pas, malheureusement les iframes ne sont pas extensible a moin de faire un javascript mais j'y arrive pas :S
si quelqu'un saurai comment faire?? (pas de php)

Merci
Ajouter un commentaire
Réponse
+0
moins plus
Vraiment super merci merci beaucoup berzek :)
Ajouter un commentaire
Réponse
+0
moins plus
Rappel du code JS de berzek :

function resizeIframe()
{
maframe = document.getElementById('sponsorFrame');// frame in the parent
maframe.style.height = "800";//maframe.contentWindow.document.body.scrollHeight+"px";
//changement de la hauteur
maframe.style.width = "100%";//maframe.contentWindow.document.body.scrollWidth+"px";
//changement de la largeur
}

On peut faire exactement pareil sans connaître une once de JS ! Ici, tu manipules le style, donc on peut tout aussi bien assigner l'extension .css à notre fichier JS et, sans oublier d'ajouter ça au header de la page HTML :

<link rel="stylesheet" type="text/css" media="screen" title="Style iframe" href="style.css" />

on peut remplir le fichier style.css avec ça :

#sponsorFrame
{
width: 100%;
height: 100%;
}

Voilà voilà ! En espérant que ça marche (eh oui, je ne l'ai pas testé...), mais normalement aucun problème, sinon celui d'une potentielle sécurité sur Firefox qui empêcherait le height: 100%; pendant le chargement seulement...
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour, j'ai insserer une iframe sur ma page de mon site mai le soucies ces que ya deux barres pour descendre en bas de page une sur l'iframe ajouter et l'autre celle de ma page de mon site je ne ces pas comment faire pour retirer celle de l'iframe si quelqu'un pouvait m'aider sa serait cool merci.

Mon iframe :

<iframe src="http://www.i-services.net/membres/annonces/annonces.php?uid=164781&sid=112119" width="700" height="800" frameborder="0" scrolling="auto"><a href="http://www.i-services.net/membres/annonces/annonces.php?uid=164781&sid=112119">Petites Annonces</a></iframe>

Déposez gratuitement vos annonces WWW.AUTOPASSION08.FR
Adresse mail : autopassion08@hotmail.fr

Pour ceux qui peuve m'aider ajouter moi sur msn merci.
Ajouter un commentaire
Réponse
+0
moins plus
Pour ceux qui passent ici,
Il suffit de mettre un height:100%; à l'iframe et définir une hauteur aux éléments parents (ne pas oublier la balise html).
Et le tout sans js!!!
Ajouter un commentaire
Ce document intitulé « Pb avec <iframe height="100%"> sou » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?