Partage
  • Partager sur Facebook
  • Partager sur Twitter

Soucis avec attachEvent

Sujet résolu
    11 mai 2010 à 17:25:38

    Bonjour,

    Je lisais un petit tuto sur comment réaliser une "horloge" en JS quand je me suis rendu compte que je possédais déjà une autre fonction effectuant un windows.onload je me suis tourné vers un tutoriel expliquant comment régler ce problème.

    Bien que tout est fonctionnel sous firefox, Internet Explorer lui a décidé qu'il m'embêterait jusqu'à la fin (bhouu !). Histoire de complexifier la tâche je n'ai aucun retour d'erreurs dans la console.

    Voici ci-joint les codes concernés :
    function addEvent(obj, event01, fct) {
        if (obj.attachEvent) { // IE
            obj.attachEvent("on" + event01, fct);
    }		
        else
            obj.addEventListener(event01, fct, true); // Autres
    }
    


    Donc le code pour déterminer c'est du IE ou autre, ensuite les évènements :

    addEvent(window , "load", date_heure); 
    addEvent(window , "load", atest); 
    addEvent(window , "load", actu_date);
    


    Et la fonction lançant ces évènements, bien que je ne comprends pas son utilité ? Etant donné que sans ça fonctionne également (enfin toujours sur firefox)

    function lancer(fct) {
        addEvent(window, "load", fct);
    }
    


    Puis mes trois fonctions atest(); actu_date(); et date_heure(); :

    function date_heure() {
        const infos = new Date();
    
        //Heure
        document.getElementById('date_heure').innerHTML = 'Il est ' + compZero(infos.getHours()) + ' heures ' + compZero(infos.getMinutes()) + ', ' + compZero(infos.getSeconds());
    
        //Date
        const mois = new Array('janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre');
        const jours = new Array('dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi');
        document.getElementById('date_heure').innerHTML += ' et nous sommes le ' + jours[infos.getDay()] + ' ' + infos.getDate() + ' ' + mois[infos.getMonth()] + ' ' + infos.getFullYear() + '.';
    }
    
    function actu_date() {
       setInterval("date_heure()", 1000); //Actualisation de l'heure
    };
    
    function atest() {
    initAutoComplete(document.getElementById('form-test'),
    document.getElementById('champ-texte'),document.getElementById('bouton-submit'))};
    


    Merci par avance :)
    • Partager sur Facebook
    • Partager sur Twitter
      11 mai 2010 à 18:22:06

      Tu appelles la fonction lancer quelque part ?

      Sinon, va voir ce tuto pour "corriger" ton setInterval :
      Bonnes pratiques JavaScript


      Enfin, le mot-clé const n'existe pas sous IE.
      • Partager sur Facebook
      • Partager sur Twitter
        11 mai 2010 à 19:10:22

        Merci bien :) Const, je ne me souvenais pas que IE ne le digérait pas (c'était ça le principal problème !).

        Je vais également corriger setInverval, merci pour le lien !

        En ce qui concerne, ma fonction lancer() je ne l'appelle nulle part, ne voyant pas trop son but je l'ai supprimé, ça fonctionne aussi bien sans alors bon... :)

        Bonne soirée !
        • Partager sur Facebook
        • Partager sur Twitter

        Soucis avec attachEvent

        × 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