Redimensionnement auto de fenêtre popup

Résolu
khroh
Messages postés
5
Date d'inscription
samedi 26 août 2006
Statut
Membre
Dernière intervention
2 septembre 2006
- 26 août 2006 à 16:59
khroh
Messages postés
5
Date d'inscription
samedi 26 août 2006
Statut
Membre
Dernière intervention
2 septembre 2006
- 2 sept. 2006 à 22:29
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

PetoleTeam
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
31 août 2006 à 01:44
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)
3
PetoleTeam
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
29 août 2006 à 21:24
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)
0
khroh
Messages postés
5
Date d'inscription
samedi 26 août 2006
Statut
Membre
Dernière intervention
2 septembre 2006

29 août 2006 à 21:59
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
0
PetoleTeam
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
29 août 2006 à 22:15
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)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
khroh
Messages postés
5
Date d'inscription
samedi 26 août 2006
Statut
Membre
Dernière intervention
2 septembre 2006

29 août 2006 à 22:26
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 ...
0
PetoleTeam
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
29 août 2006 à 23:13
essaies avec


var Haut=400;












;0)
0
PetoleTeam
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
30 août 2006 à 12:51
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)
0
khroh
Messages postés
5
Date d'inscription
samedi 26 août 2006
Statut
Membre
Dernière intervention
2 septembre 2006

31 août 2006 à 11:48
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 !
0
khroh
Messages postés
5
Date d'inscription
samedi 26 août 2006
Statut
Membre
Dernière intervention
2 septembre 2006

2 sept. 2006 à 22:29
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 !
0