Partage
  • Partager sur Facebook
  • Partager sur Twitter

Un script pour deux pages

Sujet résolu
    15 juillet 2017 à 17:10:16

    Bonjour à tous,

    J'ai un script Javascript qui m'affiche l'heure à deux endroits du globe.

    Mais j'ai une page en français et une autre en espagnol ce qui pour le moment m'as obligé a faire un script pour chaque langue car chacune à ses ID spécifique.

    Je voudrais les regrouper et ne faire qu'un seul script, mais le problème apparaît car si il ne trouve pas une ID il arrête le script

    Je vous montre ça:

    /*----------------------------------------------------*/
    /*	Affichage de la Date et de l'Heure
    ------------------------------------------------------*/
    			
    		function afficher() {
    			var jours_fr = ["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"];
    			var mois_fr = ["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"];
    			var jours_es = ["Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sabado"];
    			var mois_es = ["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"];
    			var diff_fr = document.getElementById("dif1_fr").innerHTML;
    			var diff_es = document.getElementById("dif1_es").innerHTML		
    			var offsetUTC = +2,
    			lD = new Date();
    			oD = new Date();
    			oD.setHours(lD.getUTCHours()+offsetUTC);
    			var m=oD.getMinutes();
    			var s=oD.getSeconds();
    			var diffEnMilliseconde = lD-oD;
    			var diffEnHeures = ((lD-oD)/1000)/3600;
    
    		
    		if(m <= 9) {m = "0" + m;}
    		if(s <= 9) {s = "0" + s;}		
    		 
    		  document.getElementById("locale_fr").innerHTML = " " + jours_fr[lD.getDay()] +" " + lD.getDate() + " " + mois_fr[lD.getMonth()] +" "+lD.getFullYear() + ", " + lD.getHours() + ":" + m+ ":" + s ;
    		  document.getElementById("autre_fr").innerHTML = " " + jours_fr[oD.getDay()] +" " + oD.getDate() + " " + mois_fr[oD.getMonth()] +" "+oD.getFullYear() + ", " + oD.getHours() + ":" + m+ ":" + s;
    		  document.getElementById("dif1_fr").innerHTML = diffEnHeures ;
    		  document.getElementById("locale_es").innerHTML = " " + jours_es[lD.getDay()] +" " + lD.getDate() + " " + mois_es[lD.getMonth()] +" "+lD.getFullYear() + ", " + lD.getHours() + ":" + m+ ":" + s ;
    		  document.getElementById("autre_es").innerHTML = " " + jours_es[oD.getDay()] +" " + oD.getDate() + " " + mois_es[oD.getMonth()] +" "+oD.getFullYear() + ", " + oD.getHours() + ":" + m+ ":" + s;
    		  document.getElementById("dif1_es").innerHTML = diffEnHeures ;		  
    
    		  if (
    			diff_fr == "0" ) {
    			document.getElementById("dif_fr").style.display="none";
    		  }
    			else if (
    			  diff_fr >= "1") {
    			  document.getElementById("dif_fr").style.display="block"; 
    		  }	  
    		  if (
    			diff_es == "0" ) {
    			document.getElementById("dif_es").style.display="none";
    		  }
    			else if (
    			  diff_es >= "1") {
    			  document.getElementById("dif_es").style.display="block"; 
    		  } 		  
    		  }
    
    
    
    /*----------------------------------------------------*/
    /*	Onload
    ------------------------------------------------------*/		
    
    		window.onload=function() {
    		  afficher();
    		  setInterval(afficher,1000);
    		}

    cela fonctionne sur un codepen: https://codepen.io/Aton8181/pen/eRXJbL/?editors=1010 mais pas sur deux pages différentes

    J'ai essayé avec des if=nul sans succès

    Si quelqu'un avait un tuyau pour me donner une idée ?

    Je l'en remercie d'avance

    -
    Edité par Aton Trencavel 15 juillet 2017 à 20:34:10

    • Partager sur Facebook
    • Partager sur Twitter
    Je n'ai pas de talents particuliers. Je suis juste passionnément curieux.     Albert Einstein
      20 juillet 2017 à 15:50:59

      Personne n'a une petite idée ?
      • Partager sur Facebook
      • Partager sur Twitter
      Je n'ai pas de talents particuliers. Je suis juste passionnément curieux.     Albert Einstein
        20 juillet 2017 à 16:03:10

        Peux être en fessant le choix de la langue au début de ta fonction : (comme ça tu est sur de prendre que les div qui existe)

        function (){
        
                if (lang = fr) {
                    script fr
                } else {
                    script esp
                }
            }


        Bon courage :)

        PS il te manque un ";" à la ligne 11

        -
        Edité par HadockB 20 juillet 2017 à 16:07:39

        • Partager sur Facebook
        • Partager sur Twitter
        My Website - 
          20 juillet 2017 à 17:30:27

          Ah c'est une très bonne idée j'essaierai ça des que je peut 

          Une autre chose me vient à l'esprit 

          Je peut mettre l'URL de la page directement au lieu de la langue ?

          • Partager sur Facebook
          • Partager sur Twitter
          Je n'ai pas de talents particuliers. Je suis juste passionnément curieux.     Albert Einstein
            20 juillet 2017 à 17:58:30

            Tu peux mettre ce que tu veux tant que ça retourne la valeur "true" pour ta page fr  donc a toi de tester! Mais pour info :

            document.getElementById('div_fr')

            renvoie "true" si div_fr est trouvé ;) 

            • Partager sur Facebook
            • Partager sur Twitter
            My Website - 
              20 juillet 2017 à 18:29:27

              OK je te remercie énormément d'avoir pris le temps de regarder j'essaie tous ça des que je peut et je te tiens au courant

              ps: je ne peut pas écrire de message avant 24 heures donc j'édite celui ci

              J'ai réussi en faisant ceci:

              /*----------------------------------------------------*/
              /*  Affichage de la Date et de l'Heure
              ------------------------------------------------------*/
                           
                      function afficher() {
                          var jours_fr = ["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"];
                          var mois_fr = ["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"];
                          var jours_es = ["Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sabado"];
                          var mois_es = ["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"];
              			var lang = $("html").attr("lang");
                          var offsetUTC = +2,
                          lD = new Date();
                          oD = new Date();
                          oD.setHours(lD.getUTCHours()+offsetUTC);
                          var m=oD.getMinutes();
                          var s=oD.getSeconds();
                          var diffEnMilliseconde = lD-oD;
                          var diffEnHeures = ((lD-oD)/1000)/3600;
                        
                      if(m <= 9) {m = "0" + m;}
                      if(s <= 9) {s = "0" + s;}   
              
              		
                         if (lang == "fr") {
                          var diff_fr = document.getElementById("dif1_fr").innerHTML;
              				  document.getElementById("locale_fr").innerHTML = " " + jours_fr[lD.getDay()] +" " + lD.getDate() + " " + mois_fr[lD.getMonth()] +" "+lD.getFullYear() + ", " + lD.getHours() + ":" + m+ ":" + s ;
              				  document.getElementById("autre_fr").innerHTML = " " + jours_fr[oD.getDay()] +" " + oD.getDate() + " " + mois_fr[oD.getMonth()] +" "+oD.getFullYear() + ", " + oD.getHours() + ":" + m+ ":" + s;
              				  document.getElementById("dif1_fr").innerHTML = diffEnHeures ;
              				            if (
              									diff_fr == "0" ) {
              									document.getElementById("dif_fr").style.display="none";
              								  }
              									else if (
              									  diff_fr >= "1") {
              									  document.getElementById("dif_fr").style.display="block";
              							}  
                      } else if (lang == "es") {
                          var diff_es = document.getElementById('dif1_es').innerHTML;
              				  document.getElementById("locale_es").innerHTML = " " + jours_es[lD.getDay()] +" " + lD.getDate() + " " + mois_es[lD.getMonth()] +" "+lD.getFullYear() + ", " + lD.getHours() + ":" + m+ ":" + s ;
              				  document.getElementById("autre_es").innerHTML = " " + jours_es[oD.getDay()] +" " + oD.getDate() + " " + mois_es[oD.getMonth()] +" "+oD.getFullYear() + ", " + oD.getHours() + ":" + m+ ":" + s;
              				  document.getElementById("dif1_es").innerHTML = diffEnHeures ;  
              				            if (
              									diff_es == "0" ) {
              									document.getElementById("dif_es").style.display="none";
              								  }
              									else if (
              									  diff_es >= "1") {
              									  document.getElementById("dif_es").style.display="block";
              								}        
              				}       
              
                        }
               
               
              /*----------------------------------------------------*/
              /*  Onload
              ------------------------------------------------------*/       
               
                      window.onload=function() {
                        afficher();
                        setInterval(afficher,1000);
                      }
              
              
              /*----------------------------------------------------*/
              /*	End
              ------------------------------------------------------*/

              J'ai préféré mettre un else if au lieu de juste un else pour palier les futurs ajout de langue et j'ai du rajouté --- var lang = $('html').attr('lang'); ---

              Merci bcp HadockB

              Cela marche et je n'est pas d'erreur

              Peut tu me dire ce que tu en pense 

              -
              Edité par Aton Trencavel 21 juillet 2017 à 11:50:48

              • Partager sur Facebook
              • Partager sur Twitter
              Je n'ai pas de talents particuliers. Je suis juste passionnément curieux.     Albert Einstein
                21 juillet 2017 à 11:59:41

                bin écoute ça semblent bon et en plus si ça fonctionne :D 

                il te manque juste un ";" lors de ta déclaration window.onload = [...];

                • Partager sur Facebook
                • Partager sur Twitter
                My Website - 
                  21 juillet 2017 à 12:04:01

                  Pourrais tu me dire ou exactement ?

                  Après le dernier crochet ?

                  -
                  Edité par Aton Trencavel 21 juillet 2017 à 12:09:55

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Je n'ai pas de talents particuliers. Je suis juste passionnément curieux.     Albert Einstein
                    21 juillet 2017 à 13:40:05

                    Et bien en faite quand tu fait une déclaration du type "machin = truc" il faut tout le temps terminer par un point virgule il me semblent :) 

                    Donc : 

                    window.onload=function() {
                              afficher();
                              setInterval(afficher,1000);
                            }; <<-- juste ici
                     



                    • Partager sur Facebook
                    • Partager sur Twitter
                    My Website - 
                      21 juillet 2017 à 14:15:39

                      OK super merci beaucoup je met en résolue

                      -
                      Edité par Aton Trencavel 21 juillet 2017 à 14:16:13

                      • Partager sur Facebook
                      • Partager sur Twitter
                      Je n'ai pas de talents particuliers. Je suis juste passionnément curieux.     Albert Einstein

                      Un script pour deux pages

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown