Partage
  • Partager sur Facebook
  • Partager sur Twitter

SetTimeOut et appel de fonction

Sujet résolu
    1 janvier 2009 à 23:04:18

    J'ai trouvé à cet endroit sur le site du zéro (sujet résolu) le code suivant à peine modifié (car je débute).

    <HTML>
    <!-- saved from url=(0023)http://www.contoso.com/ -->
    <head>
    <SCRIPT language="Javascript" type="text/javascript">
    function afficher(n)
    {
    alert(n);
    var temps = Math.floor(n/10);
    setTimeout(function(){ afficher(n+1) }, temps*1000);
    }
    </SCRIPT>
    </head>
    <body onload="afficher(1)">
    page HTML principale ... bla bla bla bla bla
    </body>
    </HTML>

    Si je remplace la ligne alert(n); par la ligne document.write(n); alors les chiffres ne défilent plus, et seul le "1" s'affiche.
    Est-ce que quelqu'un peut m'expliquer ? Car je dois faire une page qui change le texte ou une image à interval régulier dans un popup, et là je galère déjà énormément.
    Merci.
    • Partager sur Facebook
    • Partager sur Twitter
      1 janvier 2009 à 23:19:23

      document.write, c'est mal.

      Si vraiment tu veux effacer le contenu d'origine de la page... :
      <HTML>
      <!-- saved from url=(0023)http://www.contoso.com/ -->
      <head>
      <SCRIPT language="Javascript" type="text/javascript">
      function afficher(n)
      {
      document.body.innerHTML = n;
      var temps = Math.floor(n/10);
      setTimeout(function(){ afficher(n+1) }, temps*1000);
      }
      </SCRIPT>
      </head>
      <body onload="afficher(1)">
      page HTML principale ... bla bla bla bla bla
      </body>
      </HTML>
      

      • Partager sur Facebook
      • Partager sur Twitter
        1 janvier 2009 à 23:22:58

        Et, à vrai dire, changer régulièrement une image par un setTimeout() c'est pas la bonne solution, autant utiliser un setInterval().
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          1 janvier 2009 à 23:33:21

          +2 j'ai envie de dire.

          utilise document.getElementById("un id") pour récupérer un élement et met ça a jour, plutot que d'utiliser document.write() (qui en passant ne marchera jamais avec ce que tu veux faire, a moins d'être un sacré taré, un ultra ouf du bocal).
          • Partager sur Facebook
          • Partager sur Twitter
            1 janvier 2009 à 23:57:13

            Citation : nod_

            +2 j'ai envie de dire.

            utilise document.getElementById("un id") pour récupérer un élement et met ça a jour, plutot que d'utiliser document.write() (qui en passant ne marchera jamais avec ce que tu veux faire, a moins d'être un sacré taré, un ultra ouf du bocal).


            Merci pour votre aide aussi rapide qu'efficace

            Concernant le document.write, le problème c'est que je n'ai pas le choix.
            En fait, mon projet consiste à faire une présentation vidéo pour du public dans un commerce et sur un écran 24 pouces (donc en intranet).
            Cette présentation est constituée de pages multiples qui s'affichent successivement. Ce sont surtout des animations en Flash SWF. Ces fichiers sont independants ce qui facilite le montage (comme par exemple supprimer l'animation noel.swf après le 24/12)
            Aussi je crée une page index qui n'affiche rien mais crée un popup en fullscreen sans ascenseur et qui contient mon SetTimeOut. C'est ce setimeout qui va à interval régulier afficher en target dans le popup un SWF via la méthode suivante:
            <object classid="CLSID:D27CDB6E-AE6D-11cf-96B8-444553540000" width="1920" height="1200">
            <param name="movie" VALUE="noel.swf">
            <param name="quality" value="high">
            <param name="scale" value="exactfit">
            <param name="menu" value="true">
            <param name="bgcolor" value="#000040">
            </object>

            Donc je dois passer par un document.write.
            Et tant pis si ce n'est pas élégant. :p

            En tout cas je vous remercie énormément pour votre aide et vos réponses.
            Je reviendrai vers vous si je bute sur autre chose, ce qui ne devrait pas tarder :lol:

            • Partager sur Facebook
            • Partager sur Twitter

            SetTimeOut et appel de fonction

            × 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