Partage
  • Partager sur Facebook
  • Partager sur Twitter

Plusieurs fonctions au chargement d'une page

Dans un onload...

    2 mars 2009 à 22:52:19

    Bonsoir, je n'y connais pas grand chose en JS et je voudrais pouvoir effectuer plusieurs fonctions au chargement d'une page. Donc en cherchant, j'ai trouvé la fonction onload().

    Seulement, je n'arrive pas à le faire fonctionner avec plusieurs fonction.

    En continuant de chercher j'ai touvé deux solutions :

    onload="refresh_chat('chat_refresh.php','chatbox'); refreshmenu('menu_co1.php', 'menu')"
    

    Et
    function chargement()
    {
    refresh_chat('chat_refresh.php','chatbox');
    refreshmenu('menu_co1.php','menu');
    }
    


    Mais aucun des deux ne marche :(

    En cherchant encore (oui oui je suis têtue ^^), j'ai trouvé un tuto ici même mais alors là :waw: Vu que j'y connais pas grand chose en JS bah ça fonctionne pas :

    var FunOnl = new Array(); //L'array qui sert au stockage des fonctions
    
    function lancer(fonction) { //Fonction qui devra être appelée à la place de window.onload
        FunOnl[FunOnl.length] = fonction; //On stocke les fonctions dans l'array. Il commence à 0, et length donne l'indice du dernier élément + 1.
    }
    
    window.onload = function() { //On appelle ça une fonction anonyme (elle n'a pas de nom, la pauvre  )
        for(var i = 0, longueur = FunOnl.length; i < longueur; i++) //On utilise longueur pour ne pas recalculer la taille à chaque fois.
            FunOnl[i](); //On exécute les fonctions.
    };
    


    Et en mettant :

    <body onload="lancer()">
    


    Malheureusement ça ne marche pas non plus :waw:

    Donc là je sais pas du tout quoi faire :'(
    Je vous remercie d'avance pour votre aide :)
    • Partager sur Facebook
    • Partager sur Twitter
      2 mars 2009 à 23:19:02

      En théorie, il suffit que tu mettes :

      window.onload=function() {
        ta_premiere_fonction();
        ta_deuxieme_fonction();
        etc();
      };
      
      • Partager sur Facebook
      • Partager sur Twitter
        3 mars 2009 à 0:24:38

        Donc désormais j'ai ça :

        window.onload=function() {
        refresh_chat('chat_refresh.php','chatbox');
        refreshmenu('menu_co1.php','menu');
        };
        


        Mais ça marche toujours pas :(

        La théorie suffit pas faut croire :lol:

        Mais merci quand même de m'aider.
        • Partager sur Facebook
        • Partager sur Twitter
          3 mars 2009 à 7:18:49

          T'es sûr que tes deux fonctions sont définies et correctes au moins ?
          • Partager sur Facebook
          • Partager sur Twitter
            3 mars 2009 à 8:25:31

            window.onload=function() {
            alert('oh miracle ça marche!);
            if(refresh_chat('chat_refresh.php','chatbox')){alert('oh miracle la première fonction marche!);}else{alert('la première fonction ne marche pas!);}
            if(refreshmenu('menu_co1.php','menu')){alert('oh miracle la 2e fonction marche!);}else{alert('la 1ere fonction ne marche pas!);}
            alert('oh ca marche tout O.o');
            };
            

            et regardes ce que ça te dit :p
            • Partager sur Facebook
            • Partager sur Twitter
              3 mars 2009 à 11:45:26

              Citation : xavierm02

              alert('oh miracle ça marche!');
              


              et regardes ce que ça te dit :p



              Avec l'apostrophe après "marche!" ce sera mieux ^^ (merci la coloration syntaxique. :) )
              • Partager sur Facebook
              • Partager sur Twitter
                3 mars 2009 à 12:19:36

                exact...
                window.onload=function() {
                alert('oh miracle ça marche!');
                if(refresh_chat('chat_refresh.php','chatbox')){alert('oh miracle la première fonction marche!');}else{alert('la première fonction ne marche pas!');}
                if(refreshmenu('menu_co1.php','menu')){alert('oh miracle la 2e fonction marche!');}else{alert('la 1ere fonction ne marche pas!');}
                alert('oh ca marche tout O.o');
                };
                
                • Partager sur Facebook
                • Partager sur Twitter
                  3 mars 2009 à 12:32:38

                  J'ai bien mis ton script sur ma page mais rien ne se passe o_O
                  Aucune alerte ne s'affiche quand je recharge ma page :(

                  ça peut venir du fait que je le haut de ma page soit inclut ?

                  Mais merci de votre aide quand même :)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    3 mars 2009 à 12:48:54

                    donnes le code entier...
                    • Partager sur Facebook
                    • Partager sur Twitter
                      3 mars 2009 à 12:58:03

                      Oups :honte: J'avais fait une petite erreur en la mettant.

                      Et là il me mette qu'aucune des deux fonctions ne marchent :waw:

                      Pourtant quand mettais une seule des deux fonctions au chargement de la page elle marchait parfaitement o_O

                      'Fin bon je vous mets le code entier :

                      var req;
                      function ajaxDone(target) {
                      
                         // only if req is "loaded"
                         if (req.readyState == 4) {
                             // only if "OK"
                             if (req.status == 200 || req.status == 304) {
                                 results = req.responseText;
                                 document.getElementById(target).innerHTML = results;
                             } else {
                                 document.getElementById(target).innerHTML="ajax error:\n" +
                                     req.statusText;
                             }
                         }
                      }
                      function refresh_chat(url,target)
                       {
                          // native XMLHttpRequest object
                         if (window.XMLHttpRequest) {
                             req = new XMLHttpRequest();
                             req.onreadystatechange = function() {ajaxDone('chatbox');};
                             req.open("GET", 'chat_refresh.php', true);
                             req.send(null);
                         // IE/Windows ActiveX version
                         } else if (window.ActiveXObject) {
                             req = new ActiveXObject("Microsoft.XMLHTTP");
                             if (req) {
                                 req.onreadystatechange = function() {ajaxDone('chatbox');};
                                 req.open("GET", 'chat_refresh.php', true);
                                 req.send();
                             }
                         }
                      		   setTimeout("refresh_chat('chat_refresh.php','chatbox')", 1000);
                      }
                      function refreshmenu(url,target)
                       {
                          // native XMLHttpRequest object
                         if (window.XMLHttpRequest) {
                             req = new XMLHttpRequest();
                             req.onreadystatechange = function() {ajaxDone('menu');};
                             req.open("GET", 'menu_co1.php', true);
                             req.send(null);
                         // IE/Windows ActiveX version
                         } else if (window.ActiveXObject) {
                             req = new ActiveXObject("Microsoft.XMLHTTP");
                             if (req) {
                                 req.onreadystatechange = function() {ajaxDone('menu');};
                                 req.open("GET", 'menu_co1.php', true);
                                 req.send();
                             }
                         }
                      		   setTimeout("refreshmenu('menu_co1.php','menu')", 1000);
                      }
                      window.onload=function() {
                      alert('oh miracle ça marche!');
                      if(refresh_chat('chat_refresh.php','chatbox')){alert('oh miracle la première fonction marche!');}else{alert('la première fonction ne marche pas!');}
                      if(refreshmenu('menu_co1.php','menu')){alert('oh miracle la 2e fonction marche!');}else{alert('la 1ere fonction ne marche pas!');}
                      alert('oh ca marche tout O.o');
                      };
                      


                      Et merci de m'aider :)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        3 mars 2009 à 18:01:20

                        faut rajouter window devant c'est ça ?
                        • Partager sur Facebook
                        • Partager sur Twitter
                          3 mars 2009 à 18:12:46

                          Je pense que Xavier te conseille d'utiliser une méthode plus sûre pour les setTimeout :

                          window.setTimeout(refresh_chat,1000,"chat_refresh.php","chatbox");
                          


                          (Clic sur la citation du post de xavier. C'est un lien vers un topic de nod_ qui mentionne entre autre cet histoire de setTimeout() ;) )
                          • Partager sur Facebook
                          • Partager sur Twitter

                          Plusieurs fonctions au chargement d'une page

                          × 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