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 :

Récupération hauteur d'une page en iframe


Sujet :

JavaScript

  1. #1
    Membre actif
    Homme Profil pro
    Webmaster - Développeur/intégrateur web
    Inscrit en
    Septembre 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Webmaster - Développeur/intégrateur web
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2011
    Messages : 210
    Points : 246
    Points
    246
    Par défaut Récupération hauteur d'une page en iframe
    Bonjour,

    Voilà je suis en train de faire un script de popup de type Lightbox,
    avec le soutien de jQuery, dont je ne peu plus me passer...
    J'ai déjà pas mal avancé dans mon périple sans avoir a demander de l'aide
    mais là je coince.

    En fait j'affiche dans la popup une page via une iframe, et pour savoir quelle taille doit faire la popup il faut que je sache quelle taille fait la page contenu dans l'iframe.

    J'arrive à récupérer cette valeur via ce code présent sur la page affichée dans l'iframe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $(document).ready( function() { 
    var frame_width = $(document).width();		
    var frame_height = $(document).height();
    parent.showBox(frame_width, frame_height);
    });

    Le script appel la fonction "showBox" présente sur la page parente, cette fonction sert à dimensionner l'iframe(et donc la popup) de manière à ce que la page entière s'affiche.

    Tout fonctionne bien mis à part le fait que la hauteur envoyée à la fonction "showBox" n'est pas la bonne, la valeur est de "172" au lieu d'être de "300".

    Pensant que le problème venait de "$(document).ready" j'ai essayé d'autre méthodes dont ".load()"... jusqu'à l'utilisation d'un événement ".onLoad()" sur "<body>",
    mais rien y fait.

    Qui peut me dire où se situ mon erreur ?? Merci d'avance !!

    MICKAEL
    Si vous avez besoin d'une librairie permettant de gérer facilement les fichiers et les dossiers en PHP... ou si vous êtes juste curieux(se) :
    https://github.com/moDevsome/moFilesManager

    N'hésitez pas à me faire un retour

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Peux-tu essayer ce code au onload de ton iframe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <IFRAME SRC="..." width="100%" height="200px" id="iframe1" frameborder="0" onLoad="autoResize(this);"></iframe>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function autoResize(iframe){
         var body = iframe.contentWindow.document.body;
         var frameHeight = body.scrollHeight;
         var frameWidth = body.scrollWidth;
         iframe.height = frameHeight;
         iframe.width = frameWidth;
        showBox(frameWidth, frameHeight);
    }
    avec autoResize sur la page parente. Comme ça tu adaptes la taille de ton iframe à celle du contenu. Par contre ce qui va être délicat c'est d'attendre l'évènement onLoad avant de redimensionner la pop-up.
    One Web to rule them all

  3. #3
    Membre actif
    Homme Profil pro
    Webmaster - Développeur/intégrateur web
    Inscrit en
    Septembre 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Webmaster - Développeur/intégrateur web
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2011
    Messages : 210
    Points : 246
    Points
    246
    Par défaut
    merci pour ta réponse Sylvain et désolé pour
    mon retour tardif...

    en fait le problème ne vient même pas de l'iframe, car entre temps j'ai
    eu à utiliser .height() dans un autre context, et il se trouve que là aussi
    la valeur n'était pas la bonne (environ 20% inférieur...).

    J'aimerai donc savoir si il n'y a pas une autre alternative à .height() ??
    En passant pas du javascript classique peut être ??

    MERCI pour votre aide.
    Si vous avez besoin d'une librairie permettant de gérer facilement les fichiers et les dossiers en PHP... ou si vous êtes juste curieux(se) :
    https://github.com/moDevsome/moFilesManager

    N'hésitez pas à me faire un retour

  4. #4
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    jQuery.fn.height fait appel à différentes propriétés selon les navigateurs pour récupérer la hauteur d'un élément. En théorie cette fonction est là pour t'aider et ne pas avoir à gérer toutes les particularités de chaque navigateur.

    Mais effectivement certains bugs sont à signaler, on est pas encore parvenus à un résultat parfait. Après faut voir ce qu'on entend par hauteur: entre la margin, le padding, la border, le contenu overflow... difficile de se mettre d'accord ^^

    Tu as testé ma solution ? Justement elle ne passe pas par $.fn.height mais document.body.scrollHeight, ce qui est plus approprié pour mesurer la hauteur d'un document.
    One Web to rule them all

Discussions similaires

  1. Hauteur d'une page Web
    Par djmustru dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 10/09/2007, 20h43
  2. Détecter la hauteur d'une page (document)
    Par Queb dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 30/08/2007, 08h40
  3. Comment gérer la hauteur d'une page en fonction de la résolution ?
    Par Kenshin86 dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 10/05/2007, 14h55
  4. Calcul de la hauteur d'une page
    Par gailup dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 09/06/2006, 14h53
  5. Hauteur d'une page PHP
    Par gailup dans le forum Langage
    Réponses: 3
    Dernier message: 07/06/2006, 14h52

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