Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1557 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  IFRAME qui s'adapte à la hauteur de son contenu

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

IFRAME qui s'adapte à la hauteur de son contenu

n°1462303
ClD
Mon mononyme : C!d
Posté le 22-10-2006 à 07:49:40  profilanswer
 

salut
 
d'aprés vous quel est le meilleur moyen pour faire un IFRAME qui s'adapte automatiquement à la hauteur de la page qu'il affiche, même si la page en question change de hauteur ou change d'adresse
 
le but de l'opération, c'est d'afficher un cadre autour d'une page qui serait chargée dans un IFRAME et ce cadre s'addapterai automatiquement à la hauteur du contenu, même si une autre page est chargée dans l'IFRAME et tout ça sans mettre de code dans la page qui est chargé dans l'IFRAME, c'est à dire que le programme qui permettra ça sera uniquement dans la page qui contient les balises IFRAME
 
merci d'avance
 
 :hello:


---------------
NOUVEAU!! Février 2024 : j'ai créé un nouveau jeu en ligne : https://www.boblybots.com
mood
Publicité
Posté le 22-10-2006 à 07:49:40  profilanswer
 

n°1462304
gatsu35
Blablaté par Harko
Posté le 22-10-2006 à 08:52:13  profilanswer
 

Ya une méthode simple
page appelante :  

Code :
  1. <html>
  2. <body>
  3. <iframe id="iframe1" src="pageappelee" width="100%" frameborder="0" style="border:none">
  4. </iframe>
  5. </body>
  6. </html>


 
page appelée :

Code :
  1. <html>
  2. <body onload="IframeStruct('iframe1');">
  3. contenu de l'iframe
  4. </body>
  5. </html>


 
fonction JS :  

Code :
  1. function IframeStruct(iframeid) {
  2. if (!window.parent) return;
  3. var myiframe = window.parent.document.getElementById(iframeid);
  4. if(!myiframe) return;
  5. myiframe.style.height = document.body.scrollHeight+"px";
  6. }

n°1462307
ClD
Mon mononyme : C!d
Posté le 22-10-2006 à 09:04:23  profilanswer
 

merci
 
sauf qu'il faut que ça fonctionne sans mettre de code dans la page qui est chargée dans l'IFRAME
 
mais c'est bon j'ai trouvé :
 

Code :
  1. <html>
  2. <head>
  3. <script>
  4. function actu_iframe(){
  5. if(document.all) document.all.id_iframe.style.height = document.frames("id_iframe" ).document.body.scrollHeight;
  6. else document.getElementById("id_iframe" ).style.height = document.getElementById("id_iframe" ).contentDocument.body.scrollHeight;
  7. }
  8. </script>
  9. </head>
  10. <body>
  11. <a href="page1.html" target="name_iframe">Page 1</a>
  12. | <a href="page2.html" target="name_iframe">Page 2</a>
  13. | <a href="page3.html" target="name_iframe">Page 3</a>
  14. <br><br>
  15. <iframe onLoad="actu_iframe();" src="page1.html" name="name_iframe" id="id_iframe" width=600 height=600 frameborder=no SCROLLING=auto>
  16. </iframe>
  17. <br> ICI LE BAS DE L'IFRAME
  18. </BODY>
  19. </HTML>


 
 
 


---------------
NOUVEAU!! Février 2024 : j'ai créé un nouveau jeu en ligne : https://www.boblybots.com
n°1462309
gatsu35
Blablaté par Harko
Posté le 22-10-2006 à 09:15:36  profilanswer
 

:jap:  
Il reste plus qu'à vérifier que tu puisse accéder à contentDocument si la page appelée est sur un autre serveur


Message édité par gatsu35 le 22-10-2006 à 09:15:53
n°1462311
ClD
Mon mononyme : C!d
Posté le 22-10-2006 à 09:24:56  profilanswer
 

oui ça marche que si les pages chargées dans l'iframe sont sur le même site, car sinon ya des problèmes d'autorisations entre les pages
 
:jap:
 


---------------
NOUVEAU!! Février 2024 : j'ai créé un nouveau jeu en ligne : https://www.boblybots.com
n°1462312
gatsu35
Blablaté par Harko
Posté le 22-10-2006 à 09:33:28  profilanswer
 

au fait question con mais pourquoi tester le document.all ???
alors qu'un simple :  

Code :
  1. var ifr = document.getElementById("id_iframe" );
  2.  if (ifr) ifr.style.height = ifr.contentDocument.body.scrollHeight+"px";


Au passage tu testes si l'iframe existe comme ça tu es sur de ne pas générer d'erreur JS
et ensuite j'ai ajouté "px", car il faut toujours indiquer les unités en CSS.
C'est surtout valable si tu utilises un doctype correct et que ton navigateur passe en mode strict.
 
Mais autant prendre la bonne habitude tout de suite

n°1462325
ClD
Mon mononyme : C!d
Posté le 22-10-2006 à 10:08:14  profilanswer
 

en plus je crois que body.scrollHeight ça marche que avec internet explorer, avec firefox la hauteur de page à une autre identité


---------------
NOUVEAU!! Février 2024 : j'ai créé un nouveau jeu en ligne : https://www.boblybots.com
n°1462327
gatsu35
Blablaté par Harko
Posté le 22-10-2006 à 10:24:05  profilanswer
 

dans ce cas essaye le offsetHeight

n°1462330
ClD
Mon mononyme : C!d
Posté le 22-10-2006 à 10:36:25  profilanswer
 

ha oui c'est ca la hauteur de page avec FF, maintenant reste plus qu'a faire une fonction qui marche avec IE et FF :)


---------------
NOUVEAU!! Février 2024 : j'ai créé un nouveau jeu en ligne : https://www.boblybots.com
n°1462332
gatsu35
Blablaté par Harko
Posté le 22-10-2006 à 10:39:54  profilanswer
 

hummmmm cent balles que offsetHeight fonctionne pour IE :o

mood
Publicité
Posté le 22-10-2006 à 10:39:54  profilanswer
 

n°1462338
ClD
Mon mononyme : C!d
Posté le 22-10-2006 à 10:47:27  profilanswer
 

non sur IE c'est scrollHeight
 
c'est une des nombreuses différences qu'il y a entre IE et FF :)


---------------
NOUVEAU!! Février 2024 : j'ai créé un nouveau jeu en ligne : https://www.boblybots.com
n°1462347
gatsu35
Blablaté par Harko
Posté le 22-10-2006 à 11:02:09  profilanswer
 

Les pages que tu testes n'ont même pas de doctype non plus.
 
bon enfin pour répondre à ta question :  

Code :
  1. if (function structIframe() {
  2. var ifr = document.getElementById("id_iframe" );
  3.         if (ifr) {
  4.   ifr.style.height = (ifr.contentDocument.body.scrollHeight ? ifr.contentDocument.body.scrollHeight : ifr.contentDocument.body.offsetHeight)+"px";
  5.   }
  6. }

n°1462368
ClD
Mon mononyme : C!d
Posté le 22-10-2006 à 11:49:11  profilanswer
 

je suis désolé, je n'ai pas réussi à faire marcher ta fonction avec IE
 
voilà ce que j'ai bricolé, ça marche avec IE et FF et la hauteur s'ajuste automatiquement à chaque fois qu'on change la page qui est dans l'iframe
 

Code :
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3. <head>
  4. <script>
  5. function actu_iframe(){
  6. if(navigator.appName=="Microsoft Internet Explorer" ){
  7.  if(document.all) document.all.id_iframe.style.height = document.frames("id_iframe" ).document.body.scrollHeight;
  8.  else document.getElementById("id_iframe" ).style.height = document.getElementById("id_iframe" ).contentDocument.body.scrollHeight;
  9.  }
  10. else{
  11.  document.getElementById("id_iframe" ).style.height = document.getElementById("id_iframe" ).contentDocument.body.offsetHeight+"px";
  12.  }
  13. }
  14. </script>
  15. </head>
  16. <body>
  17. <a href="page1.html" target="name_iframe">Page 1</a>
  18. | <a href="page2.html" target="name_iframe">Page 2</a>
  19. | <a href="page3.html" target="name_iframe">Page 3</a>
  20. <br><br>
  21. <iframe onLoad="actu_iframe();" src="page1.html" name="name_iframe" id="id_iframe" width=600 height=50 frameborder=yes SCROLLING=auto>
  22. </iframe>
  23. <br> ICI LE BAS DE L'IFRAME
  24. </BODY>
  25. </HTML>


---------------
NOUVEAU!! Février 2024 : j'ai créé un nouveau jeu en ligne : https://www.boblybots.com
n°1462387
gatsu35
Blablaté par Harko
Posté le 22-10-2006 à 12:39:21  profilanswer
 

Après plusieurs et nombreux tests, le scrollHeight est toujours mauvais lorsqu'on essaye de le récupérer sur l'iframe depuis la page appelante.
 
seule la solution que je t'ai donné plus haut fonctionne correctement.
 
Au passage tu n'as toujours pas mis de doctype correct

n°1462427
ClD
Mon mononyme : C!d
Posté le 22-10-2006 à 14:10:41  profilanswer
 

ben je sais pas trop quoi te dire, le script que j'ai mis plus haut marche parfaitement chez moi avec IE et FF, pour le doctype je l'ai mis et ça change rien, j'y arrive pas avec ta fonction, on doit pas avir le même internet explorer :)


---------------
NOUVEAU!! Février 2024 : j'ai créé un nouveau jeu en ligne : https://www.boblybots.com
n°1475282
lapin21
Posté le 14-11-2006 à 16:06:18  profilanswer
 

Bonjour,
 
Y a-t-il moyen d'adapter automatiquement la hauteur de l'iframe pour un contenu dont la hauteur est dynamique (genre une liste lue en BDD) ?
 
Merci.

n°1475302
FlorentG
Unité de Masse
Posté le 14-11-2006 à 16:19:24  profilanswer
 

Les iframes c'est naze :o Vaut mieux faire sans

n°1475390
Siluro
Posté le 14-11-2006 à 18:52:46  profilanswer
 

et c'est pas xhtml strict :o

n°1475391
Aghould
Posté le 14-11-2006 à 18:58:45  profilanswer
 

mouahahahaha  
*s'en va faire tout pleins d'iframe*
[:arhendal]

n°2109980
evinrude69
le web pour tous
Posté le 06-11-2011 à 07:30:26  profilanswer
 

au lieu de se la péter avec des "bouh les iframes c'est que pour les nuls"
essayez de proposer une solution pour les remplacer  :pt1cable:  :pt1cable:  
 
sans php !
et sans javascript !
ni feuilles css de la mort qui tuent
 
alors ? :heink:
on fait moins les malins !
 
bien pratique le <a target="nomdemaframe" quand même, non?
 
les solutions simple ne sont pas destinées qu'aux esprits simples...
 
sinon CID, 5 ans plus tard ton script y marche bien avec le renard, avec IE9 c'est la mouise et alors avec Chrome, je t'en parle même pas :cry:  :cry:  :cry:

n°2109981
evinrude69
le web pour tous
Posté le 06-11-2011 à 07:31:40  profilanswer
 

au lieu de se la péter avec des "bouh les iframes c'est que pour les nuls"
essayez de proposer une solution pour les remplacer  :pt1cable:  :pt1cable:  
 
sans php !
et sans javascript !
ni feuilles css de la mort qui tuent
 
alors ? :heink:
on fait moins les malins !
 
bien pratique le <a target="nomdemaframe" quand même, non?
 
les solutions simple ne sont pas destinées qu'aux esprits simples...
 
sinon CID, 5 ans plus tard ton script y marche bien avec le renard, avec IE9 c'est la mouise et alors avec Chrome, je t'en parle même pas :cry:  :cry:  :cry:

n°2109982
evinrude69
le web pour tous
Posté le 06-11-2011 à 07:32:05  profilanswer
 

au lieu de se la péter avec des "bouh les iframes c'est que pour les nuls"
essayez de proposer une solution pour les remplacer  :pt1cable:  :pt1cable:  
 
sans php !
et sans javascript !
ni feuilles css de la mort qui tuent
 
alors ? :heink:
on fait moins les malins !
 
bien pratique le <a target="nomdemaframe" quand même, non?
 
les solutions simples ne sont pas destinées qu'aux esprits simples...
 
sinon CID, 5 ans plus tard ton script y marche bien avec le renard, avec IE9 c'est la mouise et alors avec Chrome, je t'en parle même pas :cry:  :cry:  :cry:

n°2109984
evinrude69
le web pour tous
Posté le 06-11-2011 à 08:14:51  profilanswer
 

:bounce:  
 
CID, je sais pas si 5 ans plus tard t'as encore les mains dans le camboui du web mais c'est toi le meilleur ! you are the best !!!!
 
ton script marche avec FF 7 IE 9 et... CHROME !  
C'est en "local" que ça bloque avec ie et chrome mais in situe tout est ok
 
faut renommer ce post "re-dimentionner automatiquement un iframe (vous savez, cette balise pour les nazes) : un script qui fonctionne !"
paske des scripts qui marche pas/plus yen a plein les fauxrums et je sais de quoi je parle !
 
ps: j'entends déjà les bien-faisants du web :
"si vous arrêtez pas de trouver des solutions pour cette balise de m... comment vous voulez qu'on s'en débarrasse ?"
 
EH BEN JUSTEMENT ON VEUT PAS !
je lance une pétition : SAUVONS LA BALISE IFRAME !

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  IFRAME qui s'adapte à la hauteur de son contenu

 

Sujets relatifs
En cliquant sur un lien en change le contenu d'un div[CSS / HTML] Supprimer le Scrolling vertical IFRAME
Contenu html en fonction du browser[FireF.]Bordure de bloc n'allant pas jusqu'au bout (contenu insécable)
Cherche CMS adapté à mon besoinAffichage > Source de la page révèle le contenu javascript de ma BDD
BESOIN D'AIDE SVP - Contenu textbox vers cellules plusieurs classeurs[RESOLU] affichage de 'Resource id #5' au lieu de ma variable
changer le contenu de iframe en meme 
Plus de sujets relatifs à : IFRAME qui s'adapte à la hauteur de son contenu


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR