Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème d'innerHTML

    5 juin 2009 à 22:50:35

    Bonsoir à tous,
    j'ai un problème vraiment tout pourri dans un code et je trouve vraiment pas mon erreur. Je vous montre le code et je vous explique :p .

    <script type="text/javascript">
    
    function affMembre()
    
    {
    
    var tab = new Array() ;
    var tab2 = new Array() ;
    var num = Math.floor(Math.random()*25) ;
    
    tab[1] = "photo" ;
    tab[2] = "photo" ;
    ...
    tab[24] = "photo" ;
    
    tab2[1] = "pseudo" ;
    tab2[2] = "pseudo" ;
    ...
    tab2[24] = "pseudo" ;
    
    document.getElementById("bonsoir").innerHTML = tab2[num]+"Bonsoir à toi" ;
    document.getElementById("photo").src = tab[num] ;
    
    }
    
    </script>
    


    <div id="bonsoir"></div>
    <img id="photo" onLoad="affMembre()" />
    


    Et, étrangement, rien ne s'affiche. Je ne vois pas du tout d'où le problème peut venir. Pour info, partout où j'ai écrit "photo", il s'agit d'un lien vers la photo d'un membre. Je ne les ai pas mises ici pour respecter un minimum leur intimité .

    PS : je sais que mon code est tout bidon et qu'il y a moyen de le rendre beaucoup plus "beau" mais je suis pas très doué en javascript (je suis plus doué en PHP :p ) et je dois avoir fini ce code pour minuit ^^' .

    Merci d'avance pour votre aide.
    • Partager sur Facebook
    • Partager sur Twitter
      5 juin 2009 à 23:30:15

      1. Est-ce qu'au moins tu appelles ta fonction affMembre() quelque part?
      2. Est-ce que quand tu l'appelles, le code html est deja chargé? (Est-ce que le code html se situe avant ou après le code JS)
      3. Ton random te renverra un nombre entre 0 et 24, donc tes arrays doivent partir de 0
      • Partager sur Facebook
      • Partager sur Twitter
        6 juin 2009 à 1:15:44

        C'est sans doute le point 1. qui est problématique ici...
        Car dans ce qui est montré:
        <img id="photo" onLoad="affMembre()" />
        
        affMembre n'est jamais appelé (car pour être appelé il faut que l'image se charge et comme il n'y a pas de src elle ne se chargera jamais)
        Donc si cette fonction n'est appelée nul part ailleur ça ne marchera pas.

        A la place mets le onload dans le body ou alors ajoutes window.onload=affMembre; à la fin de ton script JS


        le point 3. de Tiller pose aussi un problème qu'il faut régler
        • Partager sur Facebook
        • Partager sur Twitter

        Problème d'innerHTML

        × 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