begin process at 2012 05 29 14:37:49
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript et le navigateur

 > 

Problème de compatibilité

 > 

JS : Firefox oui, autres navigateurs non...


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

JS : Firefox oui, autres navigateurs non...

mercredi 17 novembre 2010 à 15:04:31 | JS : Firefox oui, autres navigateurs non...

tets88

Bonjour,

Je me suis amusé à faire un calendrier. Sous Firefox il fonctionne no problemo amigo. Dès que j'essaye de l'ouvrir avec un autre navigateur (IE, safari et chrome testé) oulala marche papapas... En deux mots voilà ce que je fais : j'ai un tableau contenant les semaines d'un mois. Après 7 jours, je crée un nouvelle balise <tr> qui me permet d'aller à la ligne (nouvelle semaine). La premier semaine, tous les navigateurs la construise tiptop kodak. Mais dès que j'arrive dans mon instruction if, qui permet de savoir à combien de jour en est la semaine, sous IE (merci Firebug Lite) il écrit ceci :
Code HTML :
<tr class="sem1">
   <td..></td>
   <td..></td>
...
</tr>
<><tr class="sem2"></>
<><tr class="sem3"></>

Alors pourquoi ça me met des <> sur IE, chrome, safarie et pas sur FF et quelle est la solution, please help !
Code HTML :
         <table id="calendrier">
                            <tbody id="calBody">
                                <tr class="titreTab"></tr>
                                <tr class="jourSemaine">
                                    <th>D</th>
                                    <th>L</th>
                                    <th>M</th>
                                    <th>M</th>
                                    <th>J</th>
                                    <th>V</th>
                                    <th>S</th>
                                </tr>
                            </tbody>
                      </table>


JS (good luck ;)):
Code Javascript :
function calendrier(){
    var date= new Date();
    var jour = date.getDate();
    var moisActuel = date.getMonth();
    var annee = date.getFullYear();
    calendar(jour,moisActuel, annee, date);
}

function calendar(jour, mois, annee){
    var noSemaine=1;
    var d =new Date();
    var date= new Date(annee, mois);
    var premierJour = new Date();
    var premierJour = date;
    premierJour.setDate(1);
    premierJour = premierJour.getDay();
    var moisTab=new Array(12);
        moisTab[0]="Janvier";
        moisTab[1]="F&eacute;vrier";
        moisTab[2]="Mars";
        moisTab[3]="Avril";
        moisTab[4]="Mai";
        moisTab[5]="Juin";
        moisTab[6]="Juillet";
        moisTab[7]="Ao&ucirc;t";
        moisTab[8]="Septembre";
        moisTab[9]="Octobre";
        moisTab[10]="Novembre";
        moisTab[11]="D&eacute;cembre";
     var joursMois = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
     if (annee%4==0 && annee%100!=0 || annee%400==0){
         joursMois[1]=29;
     }
     var jourMoisActuel=joursMois[mois];
     $(".moisAvant").remove();
     $(".moisApres").remove();
     $(".moisAnnee").remove();
     if((mois)==d.getMonth() && (annee)==d.getFullYear()){
        $(".titreTab").append("<th class='moisAvantActuel'><img src='Images/fleche_back_1.png' class='fleche'/></th><th colspan='5' class='moisAnnee'></th><th class='moisApres'><img src='Images/fleche_next.png' class='fleche' alt='mois suivant'/></th>")
     }
     else{
         $(".moisAvantActuel").remove();
         $(".titreTab").append("<th class='moisAvant'><img src='Images/fleche_back.png' class='fleche' alt='mois avant'/></th><th colspan='5' class='moisAnnee'></th><th class='moisApres'><img src='Images/fleche_next.png' class='fleche' alt='mois suivant'/></th>")
     }
     $(".moisAnnee").html(moisTab[mois] + " "+annee);
     var tbody=$("#calBody");
     tbody.append("<tr class='sem"+noSemaine+"'>");
     var jourSemaine = 0;
     for(i=1; i<=premierJour;i++){
         if(mois==0){
             $(".sem"+noSemaine).append("<td class='jourMoisAvant'>"+(joursMois[11]-premierJour+i)+"</td>");
         }
         else{
             $(".sem"+noSemaine).append("<td class='jourMoisAvant'>"+(joursMois[mois-1]-premierJour+i)+"</td>");
         }
         jourSemaine++;
     }
     for(j=1; j<=jourMoisActuel;j++){
         if(j<jour){
             $(".sem"+noSemaine).append("<td class='jourAvant'>"+j+"</td>");
         }
         if(j==jour){
             $(".sem"+noSemaine).append("<td class='aujourdhui'>"+j+"</td>");
         }
         if(j>jour){
             $(".sem"+noSemaine).append("<td class='jourApres'>"+j+"</td>");
         }
         jourSemaine++
         if(jourSemaine==7){
             jourSemaine=0;
             noSemaine++;
             tbody.append("<tr class='sem"+noSemaine+">");
         }
     }
     for(k=1;jourSemaine!=0;k++){
        $(".sem"+noSemaine).append("<td class='jourMoisApres'>"+k+"</td>");
        jourSemaine++;
        if(jourSemaine==7){
            jourSemaine=0;
            noSemaine++;
            tbody.append("<tr class='sem"+noSemaine+">");
        }
     }
     $(".moisApres").click(function(){
        jour=-1;
        mois++;
        if(mois==12){
            mois=0;
            annee++;
        }
        clean(noSemaine);
        calendar(jour,mois,annee)
     });
     $(".moisAvant").click(function(){
         mois--
         if((mois)==d.getMonth() && (annee)==d.getFullYear()){jour=d.getDate();}
         else{jour=-1;}
         if(mois==-1){
            mois=11;
            annee--;
        }
        clean(noSemaine);
        calendar(jour,mois,annee)
     });
}

function clean(sem){
    for(i=1; i<=sem; i++){
       $(".sem"+i).remove();
    }
}


Problème depuis la ligne : if(jourSemaine==7){
mercredi 17 novembre 2010 à 16:13:08 | Re : JS : Firefox oui, autres navigateurs non...

tets88

Réponse acceptée !
P****** ! J'ai trouvé l'erreur, perdre 3 heures pour une aussi petite erreur de rien... Ya de qu'à devenir fou !!!

Il manquait un ' à mes 2 lignes :
Code Javascript :
tbody.append("<tr class='sem"+noSemaine+">");
==>
Code Javascript :
tbody.append("<tr class='sem"+noSemaine+"'>");
.

Pour les personnes qui aimerait un calendrier qui fonctionne sur tout les navigateurs faîtes-moi signe !

Bonne suite !
mercredi 17 novembre 2010 à 20:15:58 | Re : JS : Firefox oui, autres navigateurs non...

PetoleTeam

Membre Club
Bonjour,
si je puis me permettre il est plus propre d'utiliser les méthodes mises à disposition pour créer des lignes et des colonnes
var oRow = oTable.insertRow(-1);
et
var oCell = oRow.insertCell (-1);
par exemple
Code Javascript :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title>Création Table</title>
<style type="text/css">
.t_style {
  border : 1px solid #808080;
  empty-cells : show;
}
.t_style td {
  border : 1px solid #808080;
  background-color :  #f0f0f0;
  padding : 5px;
  font-family : Verdana;
  font-size : 13px;
}
</style>
</head>
<body>
</body>
<script type="text/javascript">
//-- Creation de la table
var oTable = document.createElement( 'table');
//-- Ajout de la table
document.body.appendChild( oTable);
//-- un peu de style
oTable.className = 't_style';
//-- Creation des lignes
for (var i = 0; i < 10; i++) {
  var oRow = oTable.insertRow(-1);
  //-- Creation des colonnes
  for (var k = 0; k < 5; k++) {
    var oCell = oRow.insertCell( - 1);
    //-- Ecriture data
    oCell.innerHTML = "Lig : " +i +" Col : " +k;
  }
}
</script>
</html>

de plus tu fermes tes balises TR quand ?. Pas vu dans ton code!

enfin si tu tiens à insérer de la sorte autant TOUT insérer d'un coup plutôt que pas morceau, moins de risque de perturber le DOM.

;O)
jeudi 18 novembre 2010 à 08:32:41 | Re : JS : Firefox oui, autres navigateurs non...

tets88

Merci ! Je n'avais pas vu le chose sous cet angle mais en y réfléchissant, c'est tellement plus logique de faire des boucles imbriquées.

C'est en faisant des erreurs qu'on apprend...


Cette discussion est classée dans : var, annee, mois, if, moistab


Répondre à ce message

Sujets en rapport avec ce message

calendrier à l'affichage etrange [ par nesse81 ] Ce script est super mais l'affichage est bizarre, les mois apparaissent sur le coté droit et les années en haut des jours! bref ca n'a aucun sens je v Scinder du code en deux pages [ par Prof_Matches ] Bonjour, Voici le code que j'ai sur une page HTML : J'aimerais avoir sur : [*] - page 1 : les variables var et le résultat des document.write [*] Page de chargement après un formulaire [ par cubitus79 ] Bonjour, J'ai actuellement des problème pour mettre en place une animation de chargement a la suite de mon formulaire. J'explique mieux: j'ai un for parser un xml [ par zeitoun69 ] Bonjour je dois parser un fichier xml et former un tableau a partir des données extraite j'ai réussi a former le tableau mais les données sont celles Coordonnées et taille d'une DIV [ par gegar12 ] Tout d'abord, je viens de m'inscrire sur ce forum et je salue tous ses membres. J'ai trouvé un script qui me permet de bouger des calques (div) et qu IE et Mozzila Firefox n'active pas mon javascript de mon formulaire [ par momosan77 ] Bonjour, J'ai un souci, c'est quand j'essaie de valider le formulaire dans Mozzila ou IE celui-ci ne prend pas compte du javascript Alors que si je l' Fonction non activer... [ par momosan77 ] Bonjour, j'expose mon soucis donc c'est que la fonction principale ne considère ni les fonction secondaire no les fonction principale. Alors que sa a repetition code [ par chguignard ] bonjour, j'ai une page avec un menu. j'aimerai sortir le CSS de la page html ainsi que le detail du menu (les ul et li). comment puis je faire pour q changer le sens d'un texte qui défile [ par anthony428 ] Bonjour à tous, je viens de plonger les mains dans un site dont je suis chargé de faire la refonte et je souhaiterais changer le sens du texte qui d


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,546 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales