Redimensionnement auto de fenêtre popup [Résolu]

Signaler
Messages postés
5
Date d'inscription
samedi 26 août 2006
Statut
Membre
Dernière intervention
2 septembre 2006
-
Messages postés
5
Date d'inscription
samedi 26 août 2006
Statut
Membre
Dernière intervention
2 septembre 2006
-
Bonjour,


Voici donc mon problème :


J'ai une page, avec une image (carte) mappée, qui envoi sur différentes
pages. Pour les éléments nécéssitant pas mal d'information, le lien
ouvre une page en lieu et place de la page principale, pour les autres,
seule une fenêtre popup est ouverte (par la commande window.open), avec
une image (472x312) et une légende plus ou moins longue.

Les dimensions de la fenêtre sont définies en fonction de mon affichage
et de mon navigateur (mozilla), et problème, si l'on est sous IE, la
police est plus grosse, et du coup, la fenêtre trop petite ...

Comme je ne peux/veux pas fixer la taille d'affichage de la police, je
souhaiterais que la fenêtre s'adapte à la longueur effective du texte
(sachant que la largeur resterait constante : 484px).

Comment faire ???


Merci de votre aide !

9 réponses

Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
17
L
a même ne plus clair...




<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript">
//-------------------
function WIN_Resize(){
  var Haut = 200;
  var Larg = 400;
  var DocRef;

  self.resizeTo( Larg, Haut);

  if( document.images[0].complete){
    //-- taille de la fenêtre
    if( window.innerWidth){
      L_Win = window.innerWidth;
      H_Win = window.innerHeight;
    }
    else{
      if( document.documentElement && document.documentElement.clientWidth)
        DocRef = document.documentElement;
      else
        DocRef = document.body;

      with( DocRef){
        L_Win = document.body.clientWidth;
        H_Win = document.body.clientHeight;
      }
    }   
    //-- taille du document
    L_Doc = document.body.scrollWidth;
    H_Doc = document.body.scrollHeight;

   //-- Delta redimensionnement
    Larg  = L_Doc - L_Win;
    Haut  = H_Doc - H_Win;
    self.resizeBy( Larg, Haut);
  }
  else
    setTimeout("WIN_Resize()",100);
  }
</SCRIPT>

Compatible IE et Fire



F




ox c'est sur...



;0)
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
17
B

onjour...

Tu peux essayer un truc dans le style...

Création de la fonction
<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript">
//-------------------
function Win_Resize(){
  var Haut;
  var Larg =484;
  if( document.body.scrollHeight)
    Haut = document.body.scrollHeight;
  else
    Haut = document.height;
  self.resizeTo( Larg, Haut);

</SCRIPT>

Mise de l'événement sur BODY



;0)
Messages postés
5
Date d'inscription
samedi 26 août 2006
Statut
Membre
Dernière intervention
2 septembre 2006

Bonsoir,


Et tout d'abord merci pour le coup de main !


Bon je viens d'essayer ta solution, et le résultat est pour le moins
inattendu ... m'enfin, c'est peut-être moi qui ai mal intégré le code.
Voici donc un extrait de la source de ma page :










<SCRIPT LANGUAGE="JavaScript" SRC="../overlib.js">

</SCRIPT>


<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript">

//-------------------

function Win_Resize(){

  var Haut;

  var Larg =484;

  if( document.body.scrollHeight)

    Haut = document.body.scrollHeight;

  else

    Haut = document.height;

  self.resizeTo( Larg, Haut);

}

</SCRIPT>



<MAP NAME="belfort">



Et donc sous mozilla, la fenêtre ouverte fait dans les 800 x 600

sous IE6, est est en pleine écran ...

par contre, si on actualise la fenêtre principale, elle se redimensionne en 484x800
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
17
On modifie la fonction pour tenir compte du chargement de l'image comme suit

//-------------------
function Win_Resize(){
  var Haut;
  var Larg =484;
  if( document.body.scrollHeight)
    Haut = document.body.scrollHeight;
  else
    Haut = document.height;
  //-- Test si l'image est entiérement loadée
  if (document.images[0].complete)
    self.resizeTo( Larg, Haut);
  else
    setTimeout('Win_Resize()',250); // On rappelle la fonction
}




au passage les



<SCRIPT LANGUAGE="JavaScript" SRC="../overlib.js"></SCRIPT>
<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript">
...


</SCRIPT>
se placent entre les balises <HEAD> et </HEAD>











;0)
Messages postés
5
Date d'inscription
samedi 26 août 2006
Statut
Membre
Dernière intervention
2 septembre 2006

Je viens de faire les modifs, et sous mozilla, aucun changement ...

par contre, sous IE, la fenêtre ouverte l'est bien avec une largeur de 484 ... mais en pleine hauteur

et j'ai toujours la page principale qui elle aussi s'ouvre en 484 de large ...
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
17
essaies avec


var Haut=400;












;0)
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
17
B

onjour...

Je te livre le code suivant, pas optimisé, pour Analyse et Test

// BEGIN ////////////////////////////////
<HTML>
<HEAD>
<TITLE>Test Redimensionnement</TITLE>
<STYLE TYPE="text/css">
BODY { margin:0px;}
</STYLE>


<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript">



//-------------------
function WIN_Resize(){
  var Haut = 200;
  var Larg = 484;

  self.resizeTo( Larg, Haut);
  if( document.images[0].complete){
    if( window.innerWidth){
      L_Win = window.innerWidth;
      H_Win = window.innerHeight;
    }
    else{
      L_Win = document.body.clientWidth;
      H_Win = document.body.clientHeight;
    }






    L_Doc = document.body.scrollWidth;
    H_Doc = document.body.scrollHeight;






    if( H_Doc > H_Win){
      H_Doc -= H_Win;
      L_Doc -= L_Win;
      self.resizeBy( L_Doc, H_Doc);
    }
    else{
      H_Win -= H_Doc;
      L_Win -= L_Doc;
      self.resizeBy( L_Win, H_Win);
    }
  }
  else
    setTimeout("WIN_Resize()",100);
}
</SCRIPT>
</HEAD>

La légende...

</HTML>




// END ////////////////////////////////







C'est pas trés commenté mais nul doute que tu vas tout comprendre...



;0)
Messages postés
5
Date d'inscription
samedi 26 août 2006
Statut
Membre
Dernière intervention
2 septembre 2006

A priori, ça semble être la bonne méthode d'intégrer le script dans la fenêtre appelée et non dans la fenêtre principale.


J'ai fais l'essai hier soir avec le script initial, sous mozilla ça
marche toujours pas, par contre sous IE, c'est presque bon ... largeur
ok, par contre hauteur un poil trop courte ...


Pour ton nouveau script, je regarde ça ce soir.


Et surtout encore merci pour l'aide !
Messages postés
5
Date d'inscription
samedi 26 août 2006
Statut
Membre
Dernière intervention
2 septembre 2006

Bonsoir,


J'ai intégré ça, et vérifié en faisant varier les tailles d'affichage,
sous IE, c'est parfait, la fenêtre se  redimensionne pour
s'adapter à la taille choisie. Sous mozilla, par contre, il n'en tient
toujours pas compte, mais bon, j'ai un paliatif : en fixant les
dimensions du popup dans la fenêtre mère, j'ai le bon affichage pour
mozilla, pour IE, de tout façon, il redimensionne, et si sous mozilla,
la fenêtre est trop courte (taille de police plus grande que ce que
j'ai prévu), il offre toujours la possibilité du défilement du reste de
la page, même si la barre de défilement est désactivée.

Bref, je pense que ça va très bien aller comme ça !


Vraiment merci pour le temps consacré à résoudre mon problème !