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

TheNox Messages postés 59 Date d'inscription   Statut Membre Dernière intervention   -  
Masterjoa Messages postés 92 Date d'inscription   Statut Membre Dernière intervention   -
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> :-)
A voir également:

6 réponses

pazz
 
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
0
berzek Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   8
 
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 ..

@+


---------------------------------------
    • 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="/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="/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
(https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/?redirectedfrom=MSDN

---------------------------------------
    • 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="/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
(https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/?redirectedfrom=MSDN


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
}
0
lothi Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Vraiment super merci merci beaucoup berzek :)
0
Nicolas M.
 
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...
0

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

Posez votre question
Nadjim08
 
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="https://i-services.com/membres/annonces/annonces.php?uid=164781&sid=112119" width="700" height="800" frameborder="0" scrolling="auto"><a href="https://i-services.com/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.
0
Masterjoa Messages postés 92 Date d'inscription   Statut Membre Dernière intervention   3
 
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!!!
0