Partage
  • Partager sur Facebook
  • Partager sur Twitter

[JS] tuto heure dynamique

Sujet résolu
    8 mars 2007 à 17:45:34

    Voila j'ai un probleme avec ce morceau de code malgré le tuto :
    if(document.getElementById)//si on a pas encore trouvé l'élément a remplace
            {
                    document.getElementById("heure").innerHTML = date;//on cherche un element qui a pour Id : heure dyna et on remplace son contenu
            }
            else if(document.all)//sinon si on l'a trouvé
            {
                    document.all["heure_dyna"].innerHTML = date;//si on ad deja remplaé le contenu  de base on se contente d'actualiser
            }


    Ce que je comprend pas malgré le tuto : la diffénrece entre les crochet et les parenthese et quand est ce que : document.getElementById et document.all valle true ou false ?

    • Partager sur Facebook
    • Partager sur Twitter
      8 mars 2007 à 22:10:23

      Intéressant ce nouveau tuto.

      Oublie ce que tu as lu dedans à propos de document.all, c'est totalement faux (j'irai écrire un commentaire "du tonnerre" demain, ce soir j'ai pas le temps :D ).

      document.getElementById() est une fonction qui permet de récupérer un objet html de la page à partir de son Id.

      document.all est un objet qui contient tout les objets html de la page, mais ce n'est pas une fonction.
      Quand tu écrit:
      document.all["heure_dyna"]
      Ca équivaut à écrire:
      document.all.heure_dyna
      Les crochets sont juste une notation avancée pour remplacer les points.
      Par exemple, si "heure_dyna" était contenu dans une variable, sans les crochets, tu serais embêté pour récupérer le bon champs (certaines personnes s'en passent quand même en utilisant l'horrible fonction eval, c'est 10X plus moche).

      Concernant true ou false, en fait le if permet de tester l'existence de telle ou telle fonction, variable etc:
      Regarde ce code par exemple:
      function MaFonctionUn()
      {

      }

      if( MaFonctionUn )
      {
        alert("MaFonctionUn existe!");
      }

      if( MaFonctionDeux )
      {
        alert("MaFonctionDeux existe!"); //cela ne sera jamais affiché, parce que MaFonctionDeux n'existe pas :p
      }

      De la même façon if(document.getElementById) permet de vérifier que getElementById existe.
      Et ça ce n'est pas un scoop:
      document.getElementById existe TOUT LE TEMPS !
      (hormis navigateurs préhistoriques)
      Il s'agit d'une fonction définie dans le dom donc tout les navigateurs la connaissent (un peu comme tout les navigateurs connaissent le html).

      Et document.all ? Lui, ce n'est qu'un objet qui n'existe que sur internet explorer. Document.all n'existe tout simplement pas sur firefox (et opera, et konqueror etc) et si tu l'utilise tu aura de jolies erreurs. Mais de toute façon, document.all est presque équivalent à getElementById.

      Donc:
      -Oublie document.all, ce genre de truc ne devrait plus exister
      -Oublie if(document.getElementById) ce truc existe toujours
      -Le code fonctionne très bien en une seule ligne:

      document.getElementById("heure").innerHTML = date;


      oulà, même ici je m'échauffe ...
      • Partager sur Facebook
      • Partager sur Twitter
        9 mars 2007 à 14:17:12

        Voila qui simplifie beaucoup merci :D
        • Partager sur Facebook
        • Partager sur Twitter

        [JS] tuto heure dynamique

        × 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