BlogBang

Iframe à la taille de son contenu

J’ai eu besoin cette semaine de pouvoir redimensionner automatiquement une iframe selon la taille de son contenu…

Comment faire ? Simple… Avec un petit javascript.

Il suffit de mettre le code javascript suivant dans le head de votre page

<script language="JavaScript">
<!--
function calcHeight()
{
  //récupère la hauteur de la page
  var the_height=
    document.getElementById('the_iframe').contentWindow.
      document.body.scrollHeight;</p>
<p>  //change la hauteur de l'iframe
  document.getElementById('the_iframe').height=
      the_height;
}
//-->
</script

puis de créer votre iframe dans le body de votre page comme ceci:

<iframe width="700" id="the_iframe"<br />
	onLoad="calcHeight();"<br />
	src="testing_page.shtml"<br />
	scrolling="NO"<br />
	frameborder="1"<br />
	height="1"><br />
ici un petit texte visible uniquement<br />
des navigateurs qui ne supportent pas<br />
les iframes<br />
</iframe>

Et voilà ! Ca peut dépanner !

Publicité

Je vous recommande aussi la lecture des sujets suivants


Faites un lien vers cette news sur votre site



15 commentaires

  1. Neiyo Reply to this comment


    Bonjour,

    Serait il possible d’adapter ce script pour pouvoir appliquer un redimensionnement à l’iframe sans modifier le contenu de l’iframe ?

    Je m’explique.

    J’aimerais intégrer proprement une page externe sur mon site.

    Le problème est que je n’ai aucun accès au code de cette page et je ne peux donc pas le modifier.

    Mon souhait est de pouvoir faire en sorte que l’iframe soit à la taille de son contenu pour que mon site ne soit pas déformé.

    Si vous avez une solution.

    Merci

    Posté le 21 novembre 2007 à 12:48:05

  2. chewie Reply to this comment


    merci chef
    2 jours que je suis là dessus :p

    Posté le 25 février 2008 à 14:18:45

  3. Abbes Reply to this comment


    ben merci!
    ça marche très bien!!!!!!

    Posté le 10 mars 2008 à 16:02:08

  4. Stof Reply to this comment


    AH ca c cool ca marche impécable: thanks man j’ai cherché un moment :)

    Posté le 10 mars 2008 à 16:47:58

  5. WaNTeD Reply to this comment


    Super ! Enfin un script de redimentionnement d’height qui fonctionne !!!

    Je vais le modifier par rapport à mes besoins :)

    Cool, continue comme cela !

    Posté le 30 mars 2008 à 11:45:25

  6. Diti Reply to this comment


    Les caylemal, caymieux :) !

    Posté le 30 mars 2008 à 12:35:51

  7. Diti Reply to this comment


    alert(« Korbeninou, mes balises HTML ont été interprétées, c’est grave :) ? »);

    Posté le 30 mars 2008 à 13:51:23

  8. admin Reply to this comment


    Quelles balises ?

    Posté le 30 mars 2008 à 14:37:27

  9. Diti Reply to this comment


    Je voulais dire « BALISE OUVRANTE iframe BALISE FERMANTE caylemal, BALISE OUVRANTE object BALISE FERMANTE caymieux », mais les deux balises ont été interprétées.

    Posté le 30 mars 2008 à 14:55:10

  10. seebz Reply to this comment


    Salut Korben,
    juste pour dire que le code javascript n’est pas visible (faut lire la source pour le voir), ce serait bien que tu édite pour les autres ;)

    Posté le 31 mai 2008 à 23:35:25

  11. Judith Reply to this comment


    Bonjour

    ALERTE !! CODE INVISIBLE !!!

    Moi aussi j’ai dû lire la source pour récupérer le code, il y a un problème sur la page… ;-)

    Judith

    Posté le 9 juin 2008 à 16:35:58

  12. Korben Reply to this comment


    corrigé ! Merci Judith !

    Posté le 9 juin 2008 à 17:05:49

  13. Fafa Reply to this comment


    Le script marche sur IE mais pas sur FireFox. Dommage !!!

    Posté le 21 août 2008 à 14:28:46

  14. jo Reply to this comment


    chez moi le script marche sous firefox mais pas sous ie…
    donc le contraire de ce que dit « fafa ».
    ca n’en est pas moins dommage…

    merci qd meme

    Posté le 14 décembre 2008 à 22:44:09

  15. AlphaArt Reply to this comment


    Super script mais le problème c’est qu’il ne fonctionne pas quand l’iframe est dans une cellule de tableau … comment y remédier ?

    Posté le 11 juillet 2009 à 18:47:29