IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[Iframe][Débutant]Iframe et taille dynamique


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut [Iframe][Débutant]Iframe et taille dynamique
    Bonjour,

    J'ai actuellement une IFRAME qui charge une page JSP (sur le même server), donc dynamique, donc dont on ne connait pas la taille initialement.
    Je procède ainsi :

    déclaration de l'IFRAME
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <iframe src="{emplacement/lien[last()]/lienPrincipale/text()}" name="framePrincipale" scrolling="auto" 
    frameborder="0" id="ifrm" onload="size();">
               </iframe>
    Déclaration de size()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function size()
    { 
       timeoutID = window.setTimeout("size_aux()",3000);
    }
     
    function size_aux()
    {
     document.getElementById("ifrm").style.width=document.getElementById("ifrm").contentWindow.document.body.scrollwidth;;
     document.getElementById("ifrm").style.height=document.getElementById("ifrm").contentWindow.document.body.scrollHeight;;
    }
    En clair, mon idée était d'attendre que la page JSP se charge (ca peut être assez long, j'ai pris 3 sec pour tester) et ensuite de redimensionner l'IFRAME. Apparament, cela ne marche pas.

    Suis-je dans le faux? Sur la bonne piste mais pas la bonne methode ?

    merci d'avance pour vos réponses

    mavina

  2. #2
    Membre très actif Avatar de magnus2005
    Profil pro
    Ingenieur SI
    Inscrit en
    Avril 2005
    Messages
    454
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingenieur SI

    Informations forums :
    Inscription : Avril 2005
    Messages : 454
    Par défaut
    si tu veux acceder aux proprietes width et height

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    iframe.width
     
    document.getElementById("ifrm").width
    pourquoi via la css ca fonctionne pas, j en sais trop rien. Je pense que l IFRAME est un objet "special"?
    Mais en tous cas ça fonctionne bien.

    Voila.

    Bon courage

  3. #3
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    Alors en fait le truc c'est que mon IFrame garde la même taille apres les 3 secondes...
    Pourquoi ?

    merci

    mavina

  4. #4
    Membre très actif Avatar de magnus2005
    Profil pro
    Ingenieur SI
    Inscrit en
    Avril 2005
    Messages
    454
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingenieur SI

    Informations forums :
    Inscription : Avril 2005
    Messages : 454
    Par défaut
    Question :
    Quand tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    var h= document.getElementById("ifrm").contentWindow.document.body.scrollHeight;
    alert ("h =" + h);
    ca te retourne bien la hauteur souhaite ?

  5. #5
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 868
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 868
    Par défaut
    Salut,

    Inline frames may not be resized (and thus, they do not take the noresize attribute).
    Trouvé sur http://www.w3.org/TR/REC-html40/pres...es.html#h-16.5

    A priori, tu ne peux pas redimensionner une IFRAME.

    Peut-être peux-tu résoudre ton problème avec AJAX ? En mettant le contenu de ta JSP dans un DIV... Mais ça parrait compliqué quand même... Pourquoi est-ce que ton contenu change de taille ? Est-ce lié à la taille d'une image ? Si oui, tu peux le calculer coté serveur, et donc dimensionner ton IFRAME avec la bonne taille dès le départ..

    A+

  6. #6
    Membre éprouvé
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Par défaut
    quand c'est du statique, pas de soucis, sauf que ma frame n'est pas redimenssionnée.
    quand c'est du dynamique, l'alerte ne s'affiche pas, la frame n'est pas redimenssionnée.


  7. #7
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 868
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 868
    Par défaut
    Ce que je ferais à ta place :

    - Créer un Div à la place du IFRAME
    - Au chargement de la page, faire une requete via AJAX de la taille à afficher ( peux-tu le savoir sans afficher le contenu ?? )
    - Une fois la taille récupérée, redimensionner le Div, et y inclure le contenu de la page dynamique...

    Je ne sais pas en quoi ton contenu change et qu'est-ce qui le rend dynamique, mais si tu peux connaitre la taille par avance, cette méthode fonctionnera, non ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Iframe et submit listes déroulantes dynamiques
    Par vince240986 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 07/04/2014, 10h31
  2. Réponses: 11
    Dernier message: 16/02/2010, 23h41
  3. [JAvaScript][IFrame][Débutant]IFrame et recupération d'adresse
    Par mavina dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 30/05/2006, 13h38
  4. [Débutant] Trouvez la taille d'une fenêtre
    Par Sharukh Khan dans le forum MFC
    Réponses: 6
    Dernier message: 06/06/2004, 22h23
  5. Réponses: 10
    Dernier message: 04/05/2004, 16h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo