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

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Adapter hauteur de iframe à son contenu

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Adapter hauteur de iframe à son contenu

n°1498039
miltonis
Posté le 02-01-2007 à 18:48:31  profilanswer
 

Bonjour et meilleurs voeux pour cette nouvelle année! :)
 
je pensais que ça ne me poserait pas de souci, mais je n'y arrive pas, voici ma question :
 
Comment adapter la hauteur d'une iframe à son contenu?
Cette iframe doit contenir des questionnaires plus ou moins longs selon les liens.
Telle qu'elle est aujourd'hui, la page contient deux scrollbar (une pour l'iframe et l'autre pour la page) ce qui complique la vie de bien de personnes dont moi ;)
je voudrais que :
- SEULE l'IFRAME ait cette scrollbar et que la hauteur de la page soit fixe
- OU que SEULE la PAGE ait cette scrollbar et qu'elle prenne la hauteur du questionnaire dans l'iframe
 
j'ai vu quelques scripts par-ci par là (JS) mais qui ne me permettent pas d'aller au bout de l'iframe........enfin.......ça marche pas quoi!
voici le code de l'iframe

Code :
  1. <iframe
  2.  onload="iFrameHeight()"
  3.  id="blockrandom"
  4.  name="iframe"
  5.  src="< ?php echo $row->url; ?>"
  6.  width="< ?php echo $params->get( 'width' ); ?>"
  7.  height="< ?php echo $params->get( 'height' ); ?>"
  8.  scrolling="< ?php echo $params->get( 'scrolling' ); ?>"
  9.  align="top"
  10.  frameborder="0"></iframe>


et le JS qui était déjà en place

Code :
  1. <script language="javascript" type="text/javascript">
  2.  function iFrameHeight() {
  3.   var h = 0;
  4.   if ( !document.all ) {
  5. //alert('ttt');  
  6.    h = document.getElementById('blockrandom').contentDocument.height;
  7.    document.getElementById('blockrandom').style.height = h + 60 + 'px';
  8.   } else if( document.all ) {
  9. alert('yyy');
  10.    h = document.frames('blockrandom').document.body.scrollHeight;
  11.    document.all.blockrandom.style.height = h + 20 + 'px';
  12.   }
  13.  }
  14.  </script>


 
 
je continue à chercher mais si qqn peut me faire gagner du temps (car c'ets un site en ligne), ce serait génial
merci par avance
Cévi


Message édité par miltonis le 03-01-2007 à 15:19:44
mood
Publicité
Posté le 02-01-2007 à 18:48:31  profilanswer
 

n°1498210
miltonis
Posté le 03-01-2007 à 12:56:03  profilanswer
 

Hello!
UP!
:)

n°1498920
miltonis
Posté le 04-01-2007 à 15:50:14  profilanswer
 

Bonjour!
personne ne sait comment faire pour adapter la hauteur d'une iframe à son contenu????
de mon coté je n'avance pas, un coup de main serait le bienvenu
merci

n°1498921
brisssou
8-/
Posté le 04-01-2007 à 15:55:04  profilanswer
 

c'est super vu et revu ce genre de topic (je crois même en avoir fait un).
Donc un coup de recherche et hop!

 

tu trouveras que ça se fait assez simplement sous IE (un peu de JS quand même).

 

et tu devrais arriver à la conclusion suivante : les iFrames, ça pue.

 

de rien.

 

edit: j'en ai fait un où je posais la même question, pas un truc genre [Topic UNIK] Les trucs crades à faire en JS


Message édité par brisssou le 04-01-2007 à 15:56:00

---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°1499278
miltonis
Posté le 05-01-2007 à 12:51:15  profilanswer
 

Salut!
 
merci pour les infos :)
je viens d'adapter ce que dit ce topic :http://forum.hardware.fr/hfr/Progr [...] 7425_1.htm (13e message), mais sans résultat satisfaisant.
Voici ce que ça donne : http://chorreradelindio.chez-alice.fr/tofs/001.jpg
 
je ne comprends pas, j'essye plusierus méthodes sans succès. je dois mal m'y prendre....
un pti coup de main svp?

n°1499294
FlorentG
Posté le 05-01-2007 à 13:37:36  profilanswer
 

Pourquoi vouloir utiliser un iframe ? On est en 2007 là :/

n°1499373
miltonis
Posté le 05-01-2007 à 15:17:26  profilanswer
 

:) Je sais, totalement d'accord avec vous. Je vous explique :
C'est un site créé avec Joomla (j'suis pas fan mais la personne qui était à ce poste avant ne savait pas vraiment créer des sites), le fait est que j'ai repris le bébé et qu'il faut que je fasse avec. Je ne vais pas révolutionner tout un site (qui est assez énorme) juste pour afficher 4 pages...
 
C'est peut etre pour ça que le script JS ne fonctionne pas vraiment sur ce site.....mais je ne crois pas, il y a utre chose
le JS

Code :
  1. <script>
  2.  function actu_iframe(){
  3.      if(navigator.appName=="Microsoft Internet Explorer" ){
  4.          if(document.all) document.all.id_iframe.style.height = document.frames("id_iframe" ).document.body.scrollHeight;
  5.          else document.getElementById("id_iframe" ).style.height = document.getElementById("id_iframe" ).contentDocument.body.scrollHeight;
  6.          }
  7.      else{
  8.          document.getElementById("id_iframe" ).style.height = document.getElementById("id_iframe" ).contentDocument.body.offsetHeight+"px";
  9.          }
  10.      }
  11.  </script>


et l'iframe appelant le JS

Code :
  1. <iframe onLoad="actu_iframe();" src="<?php echo $row->url; ?>" name="name_iframe" id="id_iframe" width="<?php echo $params->get( 'width' ); ?>" frameborder="yes" SCROLLING="auto"><?php echo _CMN_IFRAMES; ?></iframe>


 
Ce qu'il manque c'est juste comment déterminer la hauteur de l'iframe selon son contenu, sachant que les liens de la page sommaire dans l'iframe laissent place à d'autres pages dans cette meme iframe.
Merci

n°1500838
miltonis
Posté le 09-01-2007 à 16:39:06  profilanswer
 

Bonjour,
personne n'est pro du Javascript? :(
moi je bloque toujours et ne sais plus quoi faire....
HELP please!

n°1500839
FlorentG
Posté le 09-01-2007 à 16:42:52  profilanswer
 

C'est pas qu'on est pas pro, c'est que la solution n'est pas très bien choisie.
 
Les iframes posent exactement le même problème que les frames : usabilité, référencement, etc. Et en plus s'ils doivent avoir la même taille que le contenu... Genre faut attendre que tout le contenu soit chargé avant de pouvoir définir la taille, sinon bonjours les sauts :( Suffit qu'une image ne se charge pas, ou mette du temps, et *boom*

n°1500848
nonau57
Posté le 09-01-2007 à 17:02:07  profilanswer
 

function setHeight()
  {
    var hauteur;  
    var iframe = document.getElementById( "mainframe" );  
    if( document.all )
      hauteur = iframe.contentWindow.document.body.scrollHeight + 20;  
    else
      hauteur = iframe.contentWindow.document.body.offsetHeight + 20;
    iframe.setAttribute( "height", hauteur );  
  }
 
 <iframe style="width:100%;border:0px;" src="test.html" id=mainframe onload="setHeight();"></iframe>

mood
Publicité
Posté le 09-01-2007 à 17:02:07  profilanswer
 

n°1500875
miltonis
Posté le 09-01-2007 à 18:06:10  profilanswer
 

merci de vos réponses.
Nonau,
je viens d'appliquer le code que tu viens de m'envoyer mais malheureusement ça ne fonctionne pas.
C'est très énervant! |:(
Je me demande si ce n'est pas le code environnant qui empeche le focntionnement des scripts envoyés...
 
je comprends votre réticence à travailler sur des iframes, voici toutefois le code de la page en question....si coup d'oeiul est jeté, ravi je serai :)

Code :
  1. <?php
  2. class HTML_wrapper {
  3. function displayWrap( &$row, &$params, &$menu ) {
  4.  ?>
  5.  <script>
  6.  function setHeight()
  7.   {
  8.     var hauteur; 
  9.     var iframe = document.getElementById( "mainframe" ); 
  10. alert('ttt');
  11.     if( document.all ) {
  12.       hauteur = iframe.contentWindow.document.body.scrollHeight + 20; 
  13.     } else {
  14. alert(222);
  15.       hauteur = iframe.contentWindow.document.body.offsetHeight + 20;
  16. alert(hauteur);
  17.     iframe.setAttribute( "height", hauteur );  }
  18.   }
  19.  </script>
  20.  <div class="contentpane<?php echo $params->get( 'pageclass_sfx' ); ?>">
  21.  <?php
  22.  if ( $params->get( 'page_title' ) ) {
  23.   ?>
  24.   <div class="componentheading<?php echo $params->get( 'pageclass_sfx' ); ?>">
  25.   <?php echo $params->get( 'header' ); ?>
  26.   </div>
  27.   <?php
  28.  }
  29.   ?>
  30.  <iframe style="width:100%; border:0px;" src="<?php echo $row->url; ?>" id="mainframe" onload="setHeight()"></iframe>
  31.  </div>
  32.  <?php
  33.  // displays back button
  34.  mosHTML::BackButton ( $params );
  35. }
  36. }
  37. ?>


merci encore...


Message édité par miltonis le 09-01-2007 à 18:06:49

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

  Adapter hauteur de iframe à son contenu

 

Sujets relatifs
IFRAME... comment bidouiller ?hauteur div
Les inconvenients du iframe ?[Résolu] [MySQL] Contenu du répertoire data
Afficher le contenu d'un site en php[batch] problème de droits d'utilisateur
JavaScript heure[PHP] - Suppr le contenu des balises <script></script> d'une page HTML
[C# .Net] Recuperer un chaine contenu dans un SubItems d'une Listview[PHP] Gestion de contenu - Site dynamique
Plus de sujets relatifs à : Adapter hauteur de iframe à son contenu


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