Page 1 sur 1

window.resize - Problème evenement inactif sous FF 1.0.3 fr

Publié : 11 mai 2005, 14:16
par Aubutus
bonjour,
j'ai un petit problème sous Firefox avec l'evenement javascript 'resize', je voudrais pouvoir positionné un div au milieu de l'ecran et que celui-ci reste au milieu lorsque l'on change la taille de la fenêtre. le rafraichissement marche sous IE mais pas sous FF.

J'ai tenté avec d'autre evenement de type window.onscroll, là ca marche.

si qqun a une reponce à mon problème, je le remerci d'avance de mous faire profité de ces lumiére.


Code : Tout sélectionner

<html><head>
<title>Test</title>
<script type="text/javascript">
<!--

function largeur_fenetre()
{
 if (window.innerWidth) return window.innerWidth;
 else if (document.body && document.body.offsetWidth) return document.body.offsetWidth;
 else return 0;
}

function hauteur_fenetre()
{
 if (window.innerHeight) return window.innerHeight  ;
 else if (document.body && document.body.offsetHeight) return document.body.offsetHeight;
 else return 0;
}

function Recharge()
{
 window.history.go(0);
}

window.onresize = Recharge;

//-->
</script>
</head>
<body>
<script type="text/javascript">
<!--

 var largeur;
 var hauteur;
 largeur = largeur_fenetre();
 hauteur = hauteur_fenetre();

 largeur = (largeur - 180)/2;
 hauteur = (hauteur - 10)/2;

 document.write("<div id='Login' style='position : absolute ; top : " + hauteur + " ; left : " + largeur + " ; width : 400px'>");
 document.write("<table border='1'><tr><td>");
 document.write("largeur: "+largeur +" hauteur: "+hauteur);
 document.write("</td></tr></table>");
 document.write("</div>");

//-->
</script>

</body></html>

Publié : 11 mai 2005, 17:23
par bobo
Je crois que ce genre de chose est volontairement désactivé dans Firefox à cause de la barre de recherche rapide.
En effet, quand cette barre s'affiche, un événement onresize est déclenché. Si un reload survient pendant ce temps, la barre disparait avec le document surlequel on voulait faire la recherche ce qui la rendrait inutilisable.
De plus, cette solution est un peu lourde, non ? Forcer un rechargement à chaque redimentionnement avec l'affichage en temps réel de la fenêtre doit être affreusement lent !
Je te conseille d'utiliser un <div> avec un id non généré par javascript (meilleure accessibilité) que tu repositionnes via javascript sur le onload et le onresize
(hint : getElementById(), style.top, style.left, style.position)
PS. : n'oublie pas les unités quand tu spécifies des dimensions dans les propriétés CSS (par exemple 'px' pour pixel.