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 :

taille de popup minimale (adaptée au contenu)


Sujet :

JavaScript

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Points : 239
    Points
    239
    Par défaut taille de popup minimale (adaptée au contenu)
    J'ai une popup. Je veux que lorsque celle ci s'ouvre (grâce au window.open), celle ci s'affiche adaptée à la taille du texte, cad que je souhaite que mon texte se voit en entier dans la popup (le texte est dynamique, je peux avoir une comme 10 lignes, c'est variable). Mais je ne veux pas fixer la hauteur à 100px et la longueur à 200px, parce que si j'ai plus de lignes, je les verrais pas à moins de mettre une scrollbar.
    Je veux que la taille de la popup soit juste assez grande pour afficher tout le texte, mais pas plus grande (pour éviter une grande page blanche)

    C'est faisable ca ?
    N'oubliez pas que l'eau ça rouille !
    est votre ami !

  2. #2
    Membre expérimenté
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Points : 1 333
    Points
    1 333
    Par défaut
    A mon avis tu dois quand même fixer la largeur : tu ne peux pas connaître la hauteur de ton texte si tu ne sais pas dans quelle largeur il s'écrit.

    Je suppose que ton texte s'ecrit dans un <p>, donne lui un id (ex: contenu) et tu peux faire dans l'openwindow :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onload="self.outerHeight= document.getElementById('contenu').offsetHeight;"> <p id="contenu">...</p>
    on ne dit pas "ça ne marche pas" on dit "je suis incapable de faire fonctionner correctement les outils mis à ma disposition"
    Pas de question technique par MP

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 211
    Points : 196
    Points
    196
    Par défaut
    A visto de naz, je dirais qu'il te faut insérer ton texte dans un tableau a cellule unique dont tu ne specifies pas la taille. La, tu mesures la taille du tableau, et tu donnes la meme taille a ta popup.

    Je viens de faire un test qui a fonctionné en utilisant la librairie X (http://www.cross-browser.com):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>PopUp</title>
    <script type="text/javascript" src="x/lib/xgetelementbyid.js"></script>
    <script type="text/javascript" src="x/lib/xdef.js"></script>
    <script type="text/javascript" src="x/lib/xleft.js"></script>
    <script type="text/javascript" src="x/lib/xtop.js"></script>
    <script type="text/javascript" src="x/lib/xstr.js"></script>
    <script type="text/javascript" src="x/lib/xnum.js"></script>
    <script type="text/javascript" src="x/lib/xwidth.js"></script>
    <script type="text/javascript" src="x/lib/xheight.js"></script>
    <script type="text/javascript">
    function mesure_tab()
    {
    var tab = xGetElementById('mon_tableau');
    var w = xWidth(tab);
    var h = xHeight(tab)+60;
    if ( w > screen.width )
    { w = screen.width; }
    if ( h > screen.height )
    { h = screen.height; }
    window.resizeTo(w,h);
    }
    </script>
    </head>
    <body onload="mesure_tab()">
    <table id="mon_tableau" cellpadding="3" cellspacing="0" border="0">
    	<tr>
    		<td>Ton texte ici</td>
    	</tr>
    </table>
    </body>
    </html>
    C'est pas vraiment terminé car il faut positionner ta fenetre, et lui donner une taille maximale en fonction des dimensions ET de la position.
    Ouvre ta fenetre en lui donnant la taille de l'ecran de l'utilisateur afin que le tableau soit créé sans contrainte:
    <a href="#" onclick="javascript:window.open('testjs.php',null,'height=screen.height,width=screen.width,status=no,toolbar=no,scrollbars=no');">
    LIEN</a>

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    offsetHeight, offsetWidth du conteneur puis resizeTo
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 211
    Points : 196
    Points
    196
    Par défaut
    SpaceFrog a raison: c'est plus simple et c'est mieux
    Faut que j'arrete de tout faire avec cette librairie!

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Points : 239
    Points
    239
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    <head>
    <!-- ... -->
    <script language="javascript">
    window.onload=resizeToMinimal;
    function resizeToMinimal(){
    window.resizeTo(
    var idElement = "page";
    document.getElementById('machin').offsetWidth,
    document.getElementById('machin').offsetHeight
    );
    }
    </script>
    </head>
    <body >
    <!-- code jsp -->
    </body>
    ca a l'air de marcher, à ceci près que ca marche pour la hauteur de la page, mais pas pour la largeur...
    J'ai plein de blanc à droite de mon texte

    C'est ca qu'il faut que je fasse?
    N'oubliez pas que l'eau ça rouille !
    est votre ami !

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    Citation Envoyé par AnneB Voir le message
    C'est ca qu'il faut que je fasse?
    En enlevant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var idElement = "page";
    qui n'a rien à faire là, si ?

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    peu importe Ebzzz ...

    mais il vaut mieux remplacer la virgule par un point virgule ... non ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Points : 239
    Points
    239
    Par défaut
    lol
    dsl,
    en fait ma fonction est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function resizeToMinimal(){
    window.resizeTo(
    var idElement = "page";
    document.getElementById(idElement).offsetWidth,
    document.getElementById(idElement).offsetHeight
    );
    }
    Sachant que le div d'id "page" est un div qui commence juste apres le tag <body> et la fin de ce div est juste avant </div> (en gros ce div englobe tout ce qui est dans le boy de ma page)
    Le truc c'est que la fenêtre se redimensionne correctement en hauteur (par rapport au nombre de lignes) mais en largeur elle est trop large.
    Voici mon code jsp (juste le body) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <body>
    <div id=page>
    <div class="maClassePourLeStyle">
      <logic:notEmpty name="monForm" property="collectionInfos">
        <table>
          <logic:iterate id="info" name="monForm" property="collectionInfos">
            <tr><bean:write name="info"/></tr>
          </logic:iterate>
        </table>
      </logic:notEmpty>
    </div>
    </div>
    </body>
    Mais bon, je crois que je vais laisser comme ca
    N'oubliez pas que l'eau ça rouille !
    est votre ami !

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function resizeToMinimal(){
    window.resizeTo(
    var idElement = "page";
    document.getElementById(idElement).offsetWidth;
    document.getElementById(idElement).offsetHeight
    );
    }
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

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

Discussions similaires

  1. adapter le contenu à la taille de la fenêtre
    Par awalter1 dans le forum Débuter
    Réponses: 2
    Dernier message: 28/02/2012, 16h22
  2. Adapter la taille d'un controle MSForms à son contenu
    Par p2n2k2 dans le forum Général VBA
    Réponses: 2
    Dernier message: 20/02/2009, 21h40
  3. Réponses: 2
    Dernier message: 22/02/2008, 22h22
  4. Réponses: 2
    Dernier message: 09/06/2006, 14h49
  5. [CSS] Taille d'un conteneur selon le contenu
    Par guy2004 dans le forum Mise en page CSS
    Réponses: 10
    Dernier message: 30/01/2006, 17h48

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