Salut a tous!!!!!
Alors voila, j'ai fait un petit "forum" php, et pour le rendre plus attrayant j'ai fait un script qui permet d'ouvrir/fermer un message (http://membres.lycos.fr/moicpamoi/messages.php , version brouillon en developpement!!).
Bon, ca marche nikel sur toute version de IE > 5.5 mais pas en dessous (ex: pour les ie de base de win2k, j'ai une erreur dans le style de "caractère incorrect", sur une ligne/colonne bidon (aucun caractere incorrect a cet endroit, voire ligne vide!!).
Alors je vous met le source et si vous pouviez m'aider a resoudre ce probleme, ou a me faire parvenir un retour sur vos erreurs (voir url) ou des suggestions sur le source ce serait cool!!! MERCI
A+
olivier
<script language="javascript">
<!--
//Déclarations globales :
//Offset : tableau de 'nombre de messages+2' elements
//Comme les elements de cette page sont en position relative (ils n'ont pas vraiment de coordonnées,
//on les deplace en donnant un décalage par rapport a leur coordonnée d'origine ex: css("x" ).top=5 fera
//monter l'element x de 5 pixels), ce tableau sert a memoriser les decalages de chaque message.
// + 2 elements car le premier message a comme index 1, et la partie statistique de bas de page est consideree
// comme un message.
var offset = new Array(12+2);
//Initialise le tableau
for(a=0;a<12+2;a++)
offset[a]=0;
/*************************************************************************************************************/
/* Fonction css : */
/* ______________ */
/* Permet l'acces au style CSS, quel que soit le navigateur utilisé (Netscape ou IE) */
/* Parametres: layerID : chaîne de caractere contenant le nom du layer auquel on veut acceder au style */
/*************************************************************************************************************/
function css(layerID)
{
//Si on peut acceder à travers le DocumentObjectModel (DOM)
if(document.getElementById){
return document.getElementById(layerID).style;
}
//Sinon, Si on est sous IE (qui utilise document.all[].style pour acceder au css)
else if(document.all){
return document.all[layerID].style;
}
//Sinon, on est sous Netscape (notion de layers)
else if(document.layers){
return document.layers[layerID];
}
}
/*************************************************************************************************************/
/* Fonction changeVis : */
/* ____________________ */
/* Permet de changer l'affichage (visible ou non) d'un message, et de décaler les autres messages */
/* en fonction de l'action effectuee: si un message doit etre affiché, on 'pousse' les autres messages */
/* vers le bas tandis que si le message doit etre caché, on les redescend */
/* parametres: ID : entier correspondant au numero du message a afficher/cacher */
/* layerID : chaîne de caractere contenant le nom du message a afficher/cacher */
/*************************************************************************************************************/
function changeVis(ID,layerID)
{
//Si le message est cache
if(css(layerID).visibility=="hidden" ||css(layerID).visibility=="hide" )
//Alors on met mode a 0
mode=0;
else
//Sinon, on met mode a 1
mode=1;
// S'il y a plus d'un message
if (12>1)
{
//Pour tous les messages
for (i=ID;i<12+1;i++)
{
//Si on traite le premier message
if (i==ID)
{
//alors on donne a x la valeur de la hauteur du message que l'on cache/affiche
x=parseInt(document.getElementById('message'+i).offsetHeight);
//si on doit afficher le message alors on inverse x
if (mode == 1) x = - x;
//pour tous les messages,
for(a=ID+1;a<=12+1;a++)
//on applique la nouvelle valeur du decalage dans le tableau
offset[a]+=x;
}
//On deplace maintenant l'en tete et le message suivant en fonction de son nouveau decalage
css('menu'+(i+1)).top = offset[i+1];
css('message'+(i+1)).top= offset[i+1];
}
}
//cache ou montre le message
if (mode == 1) css(layerID).visibility="hidden";
else css(layerID).visibility="visible";
}
/*************************************************************************************************************/
/* Fonction FermeTout : */
/* ____________________ */
/* Permet de fermer tout les message */
/* Parametres: aucun */
/*************************************************************************************************************/
function FermeTout()
{
if (12>0)
for (t=1;t<12+1;t++)
{
if (css('message'+t).visibility=="visible" || css('message'+t).visibility=="" )
changeVis(t,'message'+t);
}
}
/*************************************************************************************************************/
/* Fonction ChangeCouleur /RemetCouleur : */
/* ______________________________________ */
/* change / remet la couleur de l'en-tete du message lors du survol de la souris */
/* Parametres: LayerId : chaine de caractere contenant le nom du layer dont on veut changer la couleur */
/*************************************************************************************************************/
function ChangeCouleur(LayerID)
{
css(LayerID).background = "#D7EFF7";
}
function RemetCouleur(LayerID)
{
css(LayerID).background = "lightblue";
}
-->
</script>