Partage
  • Partager sur Facebook
  • Partager sur Twitter

window.onload

    29 juillet 2011 à 10:32:55

    Bonjour,
    J'ai déjà réalisé, grâce à votre aide, le code suivant pour imposer la date du jour au paramètre d'une applet :

    <script type="text/javascript">
    function MaFonction() {
    document.monApplet.gotoGame((new Date()).getDate())
    }
    window.onload = MaFonction;
    </script>
    
    <applet name="monApplet" archive="dambolite.jar" code="org10x10/lite/DamboLite.class" width="270" height="380"">
    <param name="url" value="game.pdn" />
    <param name="gameIndex" value="1" />
     
    </applet>
    

    Ce code est placé dans le body de la page d'accueil du site.

    Sur le site, à l'ouverture du navigateur, la valeur du paramètre "gameIndex" passe bien de la valeur 1 à la valeur de la date du jour, preuve que la fonction "MaFonction" est effectuée.

    Si je change de page et que je reviens à la page d'accueil, l'applet est de nouveau chargée mais la fonction "MaFonction" n'est pas effectuée puisque le paramètre "gamedIndex" reste sur la valeur 1.

    Il en est de même si je quitte le site et que j'y reviens sans avoir fermé le navigateur.
    Je dois alors actualiser la page pour faire passer le paramètre "gamedIndex" de la valeur 1 à la valeur de la date du jour.

    J'ai cherché à ajouter une ligne de code pour actualiser la page automatiquement.
    Je dois visiblement utiliser la fonction location.reload().

    Mais je ne sais pas comment l'utiliser et où je dois la placer dans mon code.

    Pouvez-vous m'aider ? Merci.
    • Partager sur Facebook
    • Partager sur Twitter
      29 juillet 2011 à 10:48:48

      Ca a l'air d'etre l'evenement window.onload qui n'est pas intercepté correctement, tu as essayé en changeant window.onload en document.onready ?
      • Partager sur Facebook
      • Partager sur Twitter
        29 juillet 2011 à 11:31:24

        J'ai remplacé la ligne suivante
        window.onload = MaFonction
        


        par la ligne suivante :
        document.onready = MaFonction
        


        Mais le résultat est exactement le même.
        Le problème peut-il être dû au fait qu'une partie du code doit se trouver dans la partie <head> et non <body> ?
        • Partager sur Facebook
        • Partager sur Twitter
          29 juillet 2011 à 12:33:36

          Non normalement le code doit pas etre placé dans le head.

          Essaye en retirant carrément window.onload:

          tu remplace
          window.onload = MaFonction;
          


          par
          MaFonction();
          
          • Partager sur Facebook
          • Partager sur Twitter
            29 juillet 2011 à 13:05:35

            Window.onload = MaFonction(); (les parenthèses sont importantes)
            <body onload="MaFonction()">
            document.ready = MaFonction();
            • Partager sur Facebook
            • Partager sur Twitter
              29 juillet 2011 à 13:26:23

              Je viens d'essayer d'enlever window.onload mais çà ne marche pas.
              D'ailleurs cette fois, même en actualisant la page, le paramètre gameIndex garde la valeur égale à 1 (dès l'ouverture). La fonction n'est donc jamais effectuée.

              Le constat est aussi le même si j'ajoute les parenthèses. En écrivant
              window.onload = Mafonction();
              
              en actualisant la page la fonction n'est cette fois pas effectuée. C'est la même chose avec le code
              document.ready=Mafonction();
              


              Une autre idée ? Merci de votre aide.





              • Partager sur Facebook
              • Partager sur Twitter
                29 juillet 2011 à 13:50:17

                Il me semble (je ne suis pas sûr) qu'avec les applet, le moteur de rendu rend la main au document et laisse le chargement aux navigateur.
                Du coup, ton applet est considérée comme chargée par document alors qu'elle ne l'est pas encore dans la mémoire du navigateur.

                Si au lieu d'agir sur le onload, tu met un timeout pour exécuter ta fonction, ça donne quoi ? C'est juste pour faire des tests, mais si tu lances ton script 2 secondes après le chargement, est-ce que ça marche ?
                • Partager sur Facebook
                • Partager sur Twitter
                Directeur technique, créateur de jeux HTML5 et fan de JavaScript | La suite de OnHack est sur les rails !
                  29 juillet 2011 à 14:23:58

                  Oui, c'est une idée intéressante !
                  J'ai remplacé le code du script par le code suivant :

                  <script type="text/javascript">
                  function MaFonction() {
                  document.tonApplet.gotoGame((new Date()).getDate())
                  }
                  setTimeout("MaFonction()",2000);
                  
                  </script>
                  


                  Et cette fois, effectivement, le paramètre change bien après 2s. Mais çà ne marche pas si je diminue la durée 2000 à 500 par exemple. Pourquoi ?

                  Merci.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    29 juillet 2011 à 14:35:48

                    C'est une question de rapidité de chargement. Essaie ça :

                    window.onload = function(){
                       var applet = document.getElementById("monApplet");
                       applet.onload = MaFonction;
                       // les () ne sont pas utiles puisqu'il s'agit d'un event handler
                    }
                    

                    N'oublie pas d'ajouter l'id à ta balise applet.
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Directeur technique, créateur de jeux HTML5 et fan de JavaScript | La suite de OnHack est sur les rails !
                      29 juillet 2011 à 15:00:44

                      Merci de ton aide. Je ne suis pas sûr de bien comprendre. Est-ce que tu veux dire que mon code doit donc être comme celui-ci ?

                      <script type="text/javascript">
                      function MaFonction() {
                      document.monApplet.gotoGame((new Date()).getDate())
                      }
                      window.onload = function(){
                         var applet = document.getElementById("monApplet");
                         applet.onload = MaFonction;
                         // les () ne sont pas utiles puisqu'il s'agit d'un event handler
                      }
                      
                      </script>
                      
                      <applet name="monApplet" archive="dambolite.jar" code="org10x10/lite/DamboLite.class" width="300" height="350" id="monApplet">
                      <param name="url" value="game.pdn" />
                      <param name="gameIndex" value="1" />
                      
                      </applet>
                      


                      Si c'est le cas, çà ne marche pas. Le paramètre gameIndex reste égal à 1, même en actualisant la page.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        29 juillet 2011 à 15:05:39

                        C'est bien ce que je pensais. Il n'y a pas moyen de détecter en JS le chargement de l'applet. Du coup, à part faire une estimation du temps de chargement et de passer par un setTimeout, je ne vois pas trop...
                        • Partager sur Facebook
                        • Partager sur Twitter
                        Directeur technique, créateur de jeux HTML5 et fan de JavaScript | La suite de OnHack est sur les rails !
                          29 juillet 2011 à 15:44:11

                          Merci de ton aide.
                          L'utilisation de setTimeout est déjà pour moi une solution intéressante.
                          A bientôt
                          • Partager sur Facebook
                          • Partager sur Twitter
                            29 juillet 2011 à 17:53:20

                            Citation : miclebowski

                            Oublie pas ça : http://www.siteduzero.com/tutoriel-3-1 [...] tml#ss_part_4 ;)


                            Je pense que tu n'as pas bien lu la partie du tuto. Il y est juste question de ne pas mettre la fonction appelée en tant que string et de passer soit par un appel à une fonction existante, soit par une fonction anonyme.

                            Nulle part il est dit que setTimeout était une mauvaise méthode.
                            • Partager sur Facebook
                            • Partager sur Twitter
                            Directeur technique, créateur de jeux HTML5 et fan de JavaScript | La suite de OnHack est sur les rails !
                              29 juillet 2011 à 18:57:51

                              Serait-il utile que je cherche à utiliser un autre langage que le javascript pour améliorer mon problème et le reprendre à la base ? Du php par exemple... même si je n'y connais rien (comme le javascript, même si j'apprends grâce à vous).
                              Merci.
                              A+
                              • Partager sur Facebook
                              • Partager sur Twitter
                                29 juillet 2011 à 19:15:30

                                Bah si ton seul paramètre est la date, pourquoi ne pas aller la chercher directement en Java, du coup ? Ca t'éviterait de chercher compliqué ^^
                                • Partager sur Facebook
                                • Partager sur Twitter
                                Directeur technique, créateur de jeux HTML5 et fan de JavaScript | La suite de OnHack est sur les rails !
                                  29 juillet 2011 à 19:45:35

                                  Peux-tu m'apporter des précisions ? Je ne sais pas comment aller chercher la date en java.
                                  Merci.
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    1 août 2011 à 10:41:00

                                    Citation : Shivaan

                                    Citation : miclebowski

                                    Oublie pas ça : http://www.siteduzero.com/tutoriel-3-1 [...] tml#ss_part_4 ;)


                                    Je pense que tu n'as pas bien lu la partie du tuto. Il y est juste question de ne pas mettre la fonction appelée en tant que string et de passer soit par un appel à une fonction existante, soit par une fonction anonyme.

                                    Nulle part il est dit que setTimeout était une mauvaise méthode.



                                    C'était juste que 5 messages au-dessus, il y avait :

                                    setTimeout("MaFonction()",2000);
                                    


                                    Je sais très bien que setTimeout est la méthode a employer, encore faut-il bien l'employer, ce qui est rarement le cas :D
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      1 août 2011 à 11:12:02


                                      I am are new to the forum and wanted to introduce myself .. I decided to enroll after a while 'I was reading the forum and all the good advice ..approaching the summer and I decided to get back a bit 'in the form .. I do sports (tennis and running) and I always tend to control what I eat, with ups and downs! I then discuss some interesting 'tricks and tips for proper nutrition ..I guess we will be fine!Good afternoon everyone!
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        1 août 2011 à 17:52:00

                                        Citation : DM613


                                        I am are new to the forum and wanted to introduce myself .. I decided to enroll after a while 'I was reading the forum and all the good advice ..approaching the summer and I decided to get back a bit 'in the form .. I do sports (tennis and running) and I always tend to control what I eat, with ups and downs! I then discuss some interesting 'tricks and tips for proper nutrition ..I guess we will be fine!Good afternoon everyone!



                                        Surréaliste...
                                        • Partager sur Facebook
                                        • Partager sur Twitter

                                        window.onload

                                        × 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