Resize d'une popup suivant son contenu

Petit nouveau ! | 5 Messages

15 mai 2006, 16:41

Bonjour,
Je cherche une solution pour que lorsque j'ouvre une popup, elle se redimmenssionne toute seule pour afficher tout son contenu autant sur IE que Firefox.
Mon script marche niquel sous Firefox par contre sous IE -_-'

Pour ouvrir la fenetre j'utilise :

Code : Tout sélectionner

window.open(srcPage,"Popup","location=no, menubar=no, status=yes, scrollbars=yes, resize=yes");
Script pour redimmensionner:

Code : Tout sélectionner

//Redimenssionne automatiquement une popup suivant sont contenu function resizeWin(){ IE5=false; NN4=false; NN6=false; if (document.all) IE5=true; else if (document.getElementById) NN6=true; else if (document.layers) NN4=true; if (IE5){ window.resizeTo(document.body.scrollWidth,document.body.scrollHeight); } else if (NN6){ self.sizeToContent(); } else window.resizeTo(document.images[0].width, document.images[0].height+20); self.focus(); }
La fonction est apelé sur un onLoad dans la balise body.
Le contenu de la popup est généré dynamiquement en php, d'où mes problemes de dimmension.
Merci par avance

Invité
Invité n'ayant pas de compte PHPfrance

15 mai 2006, 23:15

salut,

je te donne pas un code tout fait mais je t'explique sur quel principe je fais ce genre de chose:

en CSS, détermine le html et body à 100% de haut avec des margin: 0
html, body { height: 100%; margin: 0; ....

puis en javascript, après avoir affiché le contenu c'est à dire au onload du body, fait un scrollTop de ta page vers le bas par exemple scrollTop = 2000

Puis fait une lecture de ce scrollTop, si il est supérieur à la valeur height de ton body, demande à javascript de redimensionner ta fenêtre avec les inner
------------

Méthode qui fonctionne aussi pour avoir des textareas à hauteurs variables suivant le contenu avec détection au onkeyup

Dux
Eléphant du PHP | 127 Messages

15 mai 2006, 23:18

Désolé, j'ai pas fait attention, j'ai encore posté comme invité :)

cette technique fonctionne pour tout type de contenu.
Si c'est juste pour afficher une image, récupère simplement ces valeurs height width pour faire un resize avec les inner

Petit nouveau ! | 5 Messages

16 mai 2006, 09:48

Je vais devenir fou ^^.
J'avais deja testé cette methode, mais le probleme c'est que la propriété scrollTop sous IE reste toujours à 0 meme si je lui attribut une valeur (d'ailleur, quand je fais document.body.scrollTop=2000 il se passe rien).
En faisant un truc du style window.scrollBy(2000,2000), les scrollbar se déplace bien au max mais scrollTop n'est pas mis a jour et reste a zero ><

Dux
Eléphant du PHP | 127 Messages

16 mai 2006, 11:18

tu as testé avec le html et body en height: 100% ?

Petit nouveau ! | 5 Messages

16 mai 2006, 11:53

Oui, j'ai esseyé en le mettant en dur et/ou par le css

Dux
Eléphant du PHP | 127 Messages

16 mai 2006, 14:17

je viens de tester, ca marche pas non plus pour une fenetre, ca marche que pour descendre le contenu d'un DIV ou donner une taille dynamique à un DIV ou textarea