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 -
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> :-)
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:
- Iframe height 100 not working
- Formate pour taxer client 100€ - Forum PDF
- Arnaque transcash sur Leboncoin. ✓ - Forum Consommation & Internet
- 100 mo en go ✓ - Forum Mail
- 100 mbps en mo/s - Forum WiFi
- Pro 100 - Télécharger - Vie quotidienne
6 réponses
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
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
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 ..
@+
---------------------------------------
tu indiques des height et width en dure, ex : <iframe height=800 (au lieu de height=100%)
- marche pas sous firefox malheureusement
---------------------------------------
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();">
---------------------------------------
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
---------------------------------------
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
}
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
}
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...
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...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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.
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.