Astuces Forumactif
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Membres connectés récemment
Voir tous les membres

[PHPBB3] Erreur compte à rebours ReferenceError: Rebour is not defined


2 participants

Voir le sujet précédent Voir le sujet suivant Aller en bas

avatar
photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Jeu 16 Avr 2020 - 16:27

  • Version du forum :
    PHPBB3
  • Templates modifiés :
    oui
  • Navigateur :
    Firefox
Bonjour à tous les milouziens,

J'ai ce script de compte à rebours installé sur la page d'accueil et sur les sujets:
Code:

$(function(){
  if(!_userdata["session_logged_in"])return;
    
    var Affiche= document.getElementById("Compte");
    function Rebour() {        
    var date1 = new Date();
    //A renseigner tous les mardis
    var date2 = new Date ("Apr 21 00:00:00 2020");
    var sec = (date2 - date1) / 1000;
    var n = 24 * 3600;
    if (sec > 0) {
    j = Math.floor (sec / n);
    h = Math.floor ((sec - (j * n)) / 3600);
    mn = Math.floor ((sec - ((j * n + h * 3600))) / 60);
    sec = Math.floor (sec - ((j * n + h * 3600 + mn * 60)));
    Affiche.innerHTML = "<div class=titre>Temps restant pour voter: </div><div class=nume><span>"+ j +"</span></div> <div class=alpha>j</div><div class=nume><span>"+ h +"</span></div> <div class=alpha>h</div><div class=nume><span> "+ mn +" </span></div><div class=alpha>mn</div>";
    window.status = "Temps restant : " + j +"j "+ h +"h "+ mn +"min ";
   }
      //A la fin du vote
  if (sec <= 0) {  
  Affiche.innerHTML ="<div class=titre style=background:#922a36;height:45px;font-weight:bold;padding-left:8px;padding-right:8px;overflow:hidden;>Les votes pour la photo Best-of sont terminés.</div>";  
                }              
   tRebour=setTimeout ("Rebour();", 1000);
  }      
    Rebour();
});

La fonction est appelé dans les templates concernés ainsi que le css :
Code:

<!-- Compte à rebours vote -->
<div id="Compte"></div>
<style>
/*Compte à rebours 2*/
 #Compte {height: 45px;width: 30%;padding: 10px;position:absolute;top:-55px;}
 #Compte div{float:left;margin:0px 5px;line-height: 60px;color:#3bd9eb;}
 #Compte div span{font-size:12px;text-align:center;color:#e2660a;}
</style>      

Le script fonctionne, mais il génère une erreur dans la console:
"ReferenceError: Rebour is not defined"

Comment éviter cette erreur?

Merci pour votre aide.


Dernière édition par photoclic le Sam 18 Avr 2020 - 11:04, édité 1 fois
Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Jeu 16 Avr 2020 - 17:02

Hello Serge,
as tu le même id et script pour les deux pages ?
avatar
photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Jeu 16 Avr 2020 - 17:09

Re Phil,

C'est toi qui me l'avait proposé ici :-)
https://www.milouze14.com/t32386-bestof-compte-a-rebours-hebdomadaire-permanent#616427

J'y ai juste ajouté ceci:
Code:

      //A la fin du vote
  if (sec <= 0) {  
  Affiche.innerHTML ="<div class=titre style=background:#922a36;height:45px;font-weight:bold;padding-left:8px;padding-right:8px;overflow:hidden;>Les votes pour la photo Best-of sont terminés.</div>";  

Tout fonctionne bien, à part cette erreur dans la console.
Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Jeu 16 Avr 2020 - 17:48

Re Serge,

La console nous mène :
https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Erreurs/Not_defined


Effectivement, c'est pas très logique ou alors le navigateur ne comprend pas que la variable
sera effective au terme de 5 jours!!!!

@no_way

Seul notre ami Arnaud pourrait nous en dire plus à ce sujet.
avatar
photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Jeu 16 Avr 2020 - 19:07

OK. merci Philippe.

Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Ven 17 Avr 2020 - 4:07

Hello Serge,

curieusement ce matin j'ai testé le script identique et le même code html en les
positionnant respectivement sur l'index et les sujets et aucun retour négatif de la console.

Sûrement un soucis de Forumactif car il viennent d'ajouter à l'onglet du navigateur
le nombre de notification entre accolades.
avatar
photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Ven 17 Avr 2020 - 10:53

Bonjour Philippe,

Merci pour ton retour.

Mais de mon coté, j'ai le même souci, même quand je ne mets le script que sur une seule des pages.
Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Ven 17 Avr 2020 - 16:39

Re Serge,

pour la page d'accueil, tu as placé le code html en début de template ?
avatar
photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Ven 17 Avr 2020 - 18:31

Re Phil,

Oui mon template démarre avec le code donné la haut.
Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Ven 17 Avr 2020 - 18:47

As tu testé de modifier le code html et le script sur l'une des 2 pages?


Exemple:

Code:

 <!-- Compte à rebours vote -->
    <div id="CompteBis"></div>
    <style>
    /*CompteBis à rebours 2*/
    #CompteBis {height: 45px;width: 30%;padding: 10px;position:absolute;top:-55px;}
    #CompteBis div{float:left;margin:0px 5px;line-height: 60px;color:#3bd9eb;}
    #CompteBis div span{font-size:12px;text-align:center;color:#e2660a;}
    </style>     



Code:

    $(function(){
      if(!_userdata["session_logged_in"])return;
       
        var Affiche= document.getElementById("CompteBis");
        function RebourBis() {       
        var date1 = new Date();
        //A renseigner tous les mardis
        var date2 = new Date ("Apr 21 00:00:00 2020");
        var sec = (date2 - date1) / 1000;
        var n = 24 * 3600;
        if (sec > 0) {
        j = Math.floor (sec / n);
        h = Math.floor ((sec - (j * n)) / 3600);
        mn = Math.floor ((sec - ((j * n + h * 3600))) / 60);
        sec = Math.floor (sec - ((j * n + h * 3600 + mn * 60)));
        Affiche.innerHTML = "<div class=titre>Temps restant pour voter: </div><div class=nume><span>"+ j +"</span></div> <div class=alpha>j</div><div class=nume><span>"+ h +"</span></div> <div class=alpha>h</div><div class=nume><span> "+ mn +" </span></div><div class=alpha>mn</div>";
        window.status = "Temps restant : " + j +"j "+ h +"h "+ mn +"min ";
      }
          //A la fin du vote
      if (sec <= 0) { 
      Affiche.innerHTML ="<div class=titre style=background:#922a36;height:45px;font-weight:bold;padding-left:8px;padding-right:8px;overflow:hidden;>Les votes pour la photo Best-of sont terminés.</div>"; 
                    }             
      tRebourBis=setTimeout ("RebourBis();", 1000);
      }     
        RebourBis();
    });
avatar
photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Ven 17 Avr 2020 - 19:07

Oui Philippe.

j'ai même mis ce script que sur 1 page et l'erreur est toujours là.

Je viens de mettre tes derniers codes sur la page d'accueil et même retiré sur les autres pages.
Donc seule la pge d'accueil a ce code et j'ai donc l'erreur:
"ReferenceError: RebourBis is not defined"

C'est d'ailleurs en place, si tu veux voir.
Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Ven 17 Avr 2020 - 19:21

Alors là, je ne comprends pas pourquoi tu as ce genre de soucis et
que sur mon fofo tout est ok!!
avatar
photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Ven 17 Avr 2020 - 19:27

Ce qui est étonnant, c'est que j'ai aussi cette erreur  sur mon forum test quand je mets ce script et uniquement ce script.
avatar
photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Sam 18 Avr 2020 - 0:36

Re Phil,

Alors j'ai fait aussi des essais et relu complètement ce que tu m'avais proposé ici :
https://www.milouze14.com/t32386-bestof-compte-a-rebours-hebdomadaire-permanent#616427

En fait le script retenu n'est pas celui d'Arnaud. Tu l'avais trouvé sur le net et proposé en remplacement.

En mettant comme tu le proposais au départ tout dans le template concerné, il ne semble plus y avoir d'erreur, mais je n'ai pas réussi à adapter le css; j'ai une bande noire au lieu de l'heure.

J'ai essayé aussi le script d'Arnaud, il fonctionne aussi, mais je n'ai pas réussi à à avoir le rendu tel que je l'ai aujourd'hui.

Pour l'instant j'ai tout remis comme c'était avant puisque ça fonctionne malgré l'erreur.

Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Sam 18 Avr 2020 - 4:22

Hello Serge,
hum, et si tu utilisais une position fixed, car de mon côté sur ton fofo,
il fallait ouvrir la console pour désactiver cette position (absolute).
Il me semble déjà t'avoir remonté cette information Serge.
Effectivement, j'avais trouvé ce script sur la toile car je ne suis pas capable à l'heure actuelle de développer ce genre de script..

J'ai enfin trouvé le fautif, c'est le rafraichissement qui fait bugger :
Code:
tRebour=setTimeout ("Rebour();", 1000);

Il faut que j'arrive a trouver la parade pour le contourner.

Edit: testes ce script Serge:
Code:
$(function(){
      if(!_userdata["session_logged_in"])return;
       
        var Affiche= document.getElementById("Compte");
        function Rebour() {       
        var date1 = new Date();
        //A renseigner tous les mardis
        var date2 = new Date ("Apr 21 00:00:00 2020");
        var sec = (date2 - date1) / 1000;
        var n = 24 * 3600;
        if (sec > 0) {
        j = Math.floor (sec / n);
        h = Math.floor ((sec - (j * n)) / 3600);
        mn = Math.floor ((sec - ((j * n + h * 3600))) / 60);
        sec = Math.floor (sec - ((j * n + h * 3600 + mn * 60)));
        Affiche.innerHTML = "<div class=titre>Temps restant pour voter: </div><div class=nume><span>"+ j +"</span></div> <div class=alpha>j</div><div class=nume><span>"+ h +"</span></div> <div class=alpha>h</div><div class=nume><span> "+ mn +" </span></div><div class=alpha>mn</div>";
        window.status = "Temps restant : " + j +"j "+ h +"h "+ mn +"min ";
      }
          //A la fin du vote
      if (sec <= 0) { 
      Affiche.innerHTML ="<div class=titre style=background:#922a36;height:45px;font-weight:bold;padding-left:8px;padding-right:8px;overflow:hidden;>Les votes pour la photo Best-of sont terminés.</div>"; 
                    }             
 
         
setTimeout(function(){Rebour(); }, 1000);         
         
        }
       
       

         
        Rebour();
    });
avatar
photoclic
https://photoclic.forum-pro.fr/

Messagephotoclic Sam 18 Avr 2020 - 11:04

Bonjour Philippe,

Merci. Tu as trouvé!

C'est tout bon, cette satanée erreur a disparu l'ami tape la


J'ai une autre erreur dans la console et qui est je crois générée par du code FA, car je n'ai pas ça dans mes js:
"Impossible de charger « https://www.annuphoto.com/cgi-bin/code_retour.eur?id=1055 ». Un service worker a communiqué un objet « promise » à FetchEvent.respondWith() qui a renvoyé une valeur « undefined » qui n’est pas un objet « Response »."

Je crois que c'est mozilla qui bloque ce cite.

Et la console t’envoie vers ça: "event.respondWith("
Milouze14
Milouze14
Fondateur

https://www.milouze14.net/

MessageMilouze14 Sam 18 Avr 2020 - 11:34

Re Serge,
de rien mon ami.

J'ai une autre erreur dans la console et qui est je crois générée par du code FA, car je n'ai pas ça dans mes js:

Ce sera surement pour une prochaine demande clin oeil .


Hello


Sujet résolu et déplacé dans le forum adéquate

A bientôt pour une prochaine demande clin oeil



Voir le sujet précédent Voir le sujet suivant Revenir en haut

Créer un compte ou se connecter pour répondre

Vous devez être membre pour répondre.

S'enregistrer

Rejoignez notre communauté ! C'est facile !


S'enregistrer

Connexion

Vous êtes déjà membre ? Aucun soucis, cliquez ici pour vous connecter.


Connexion

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum