JS:Prob de compatibilite!!

JS:Prob de compatibilite!! - HTML/CSS - Programmation

Marsh Posté le 16-01-2003 à 19:04:00    

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>

Reply

Marsh Posté le 16-01-2003 à 19:04:00   

Reply

Marsh Posté le 16-01-2003 à 20:28:00    

1) dis nous quelle est l'intitulé exact de l'erreur qu'il renvoit ainsi que la ligne (même si celle-ci te parait bidon).
 
2) Le javascript, on l'emploie pour des choses subsidiaires non déterminantes pour le bon fonctionnement d'un site. Pas mal de personne désactivent le javascript, et le nombre de navs présents rend quasiment impossible de faire du JS cross-all-browser.
 
Donc, quand tu emploies le javascript, tu dois toujours t'assurer que ton forum peut fonctionner même si qqu désactie le javascript.  
 

Reply

Marsh Posté le 16-01-2003 à 20:31:00    

Je pense pas qu'il y ait temps de personnes qui désactives le JavaScript.

Reply

Marsh Posté le 16-01-2003 à 20:32:58    

Hermes le Messager a écrit :

1) dis nous quelle est l'intitulé exact de l'erreur qu'il renvoit ainsi que la ligne (même si celle-ci te parait bidon).
 
2) Le javascript, on l'emploie pour des choses subsidiaires non déterminantes pour le bon fonctionnement d'un site. Pas mal de personne désactivent le javascript, et le nombre de navs présents rend quasiment impossible de faire du JS cross-all-browser.
 
Donc, quand tu emploies le javascript, tu dois toujours t'assurer que ton forum peut fonctionner même si qqu désactie le javascript.  
 
 


 
+1 !
 
 Le JavaScript n'est plus tres utile pour rendre dynamique ses pages et pour mettre en forme ces dernieres ! PHP + CSS permet de faire pas mal de choses qui auraient du etre faites par JavaScript
 
A moins de se conformer au EcmaScript (et c pas sur) tu auras toujours des pbs de compatibilité.
 
Le mieux c de confiner le JavaScript a des fonctionnalites minimes (verification d'un champ si il est au bon format, redirection en cas de modification d'un select, Ou faire des petites animations toutes connes pour egayer son site)

Reply

Marsh Posté le 16-01-2003 à 20:34:52    

pour un fois je fais un post a la con :
 
le JS c'est mal, depassé et inutile :fou:  
 
voila

Reply

Marsh Posté le 16-01-2003 à 20:45:01    

chacal_one333 a écrit :

pour un fois je fais un post a la con :
 
le JS c'est mal, depassé et inutile :fou:  
 
voila


 
Inutile non : Comment fais tu pour verifier la syntaxe des valeurs entrees dans des champs de formulaire sans JavaScript ? La redirection avec un Select ?  
 
Non JavaScript est utile dans des cas bien precis

Reply

Marsh Posté le 16-01-2003 à 21:36:27    

Il faut pas confondre dynamique et interactif. Le php permet de faire un site dynamique et le JS de le rendre interactif.
 
Pour moi, le JS permet d'améliorer un site et aussi diminuer le traffic du serveur. Car certains trucs que tu fais en PHP sont faisable en JS avec l'inconviénient que pour le PHP, tu es obliger de refaire travailler le serveur.

Reply

Marsh Posté le 16-01-2003 à 21:48:02    

Bonjour a tous!!
 
Alors en fait l'erreur exacte, je ne sai pa c'etait sur les pcs de mon lycee donc je saurai ca lundi ou jeudi.
ca tournai impec sur des IE de w98 mai ceux de W2k ca ne marchait pas.
Donc je vous dit ca a ce moment.
En fait les messages sont visibles sans java, mais dans certains cas il montre un certain nombre d'erreurs assez désagréables (au chargement de la page, et sur les mouseover des DIV)
Sinon, essayez de vous pencher sur le source (je sais c chiant) histoire de voir si il y a des erreurs flagrantes
Dernier point, certains tests peuvent sembler bidons, genre if (12>0), mais en fait c parce que ce sont des variables de PHP passées au parser!! donc les tests sont utiles.
Merci a tous!

Reply

Marsh Posté le 16-01-2003 à 21:59:40    

SoulJacker a écrit :

Il faut pas confondre dynamique et interactif. Le php permet de faire un site dynamique et le JS de le rendre interactif.
 
Pour moi, le JS permet d'améliorer un site et aussi diminuer le traffic du serveur. Car certains trucs que tu fais en PHP sont faisable en JS avec l'inconviénient que pour le PHP, tu es obliger de refaire travailler le serveur.


 
Tout à fait, mais si tu es suffisamment malin, tu fais quand même une vérif avec php au cas où les mecs désactiveraient JS. Donc, ça ne contredit en rien ce que j'ai dit. ;)
JS doit pouvoir être désactivé sur un site sans empêcher l'utilisateur lambda de s'en servir.
Quand je vois des sites qui redimensionne du contenu avec du javascript...  :heink:

Reply

Marsh Posté le 01-02-2003 à 17:49:21    

PLIZZZ UP!!!

Reply

Marsh Posté le 01-02-2003 à 17:49:21   

Reply

Marsh Posté le 01-02-2003 à 17:53:50    

POlivier a écrit :

.
En fait les messages sont visibles sans java


 
Logique que Java ne soit pas nécessaire, vu qu'il n'y a que du HTML & Javascript dans ton code :whistle:


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed