Partage
  • Partager sur Facebook
  • Partager sur Twitter

[JAVSCRIPT] Portée de variable

Problème de porté ...

Sujet résolu
    8 avril 2006 à 21:33:42

    Bonjour à tous !

    J'ai le script suivant :

    <html>
    <head>
    <title></title>
    <SCRIPT LANGUAGE=JAVASCRIPT>
    function position(e) {
    x = (navigator.appName.substring(0,3) == "Net") ? e.pageX : event.x+document.body.scrollLeft;
    y = (navigator.appName.substring(0,3) == "Net") ? e.pageY : event.y+document.body.scrollTop;
    window.status = "Souris x:"+x+" | y:"+y;
    }
    if (navigator.appName.substring(0,3) == "Net") document.captureEvents(Event.MOUSEMOVE);

    document.onclick = position;


    </SCRIPT>
    </head>
    <body>
    <script>document.write(x);</script></body>
    </html>


    Le problème, c'est que les variables x et y dans la fonction ne marche que dans la fonction en question. Si je fait un document.write(x) en dehors de cette fonction, rien ne s'affiche à l'écran ....

    Comment peut on faire pour que ces deux variables soit globale ?

    Merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      8 avril 2006 à 22:00:30

      Tiens, ça me rappelle quelque chose ce script ...

      Tes variables ont bel et bien une portée "infinie" (bon, au document, c'est déjà ça)

      Petit cours :

      var variable1 = 0;
      // variable globale (portée a tout le document)
      // parcque déclarée hors d'un fonction
      variable2 = 0; // portée globale aussi
      function fonction()
          {
          var variable3 = 0;
          // seulement pour la fonction, car déclarée dans la fonction
          var variable4 = 0;
          // globale, car non déclarée (même dans une fonction)
          }


      Donc, si ca n'affiche rien, c'est tout simplement car à l'heure où tu appelles ton document.write (au lancement même du document), tu n'as jamais appellé ta fonction position(), donc x et y n'ont encore aucune valeur.
      Donc demande de l'écrire une fois que ta fonction aura été appelée
      • Partager sur Facebook
      • Partager sur Twitter
        9 avril 2006 à 14:38:54

        Merci pour ta réponse ;) !

        Est-il possible en Javascript de savoir si une variable existe ou pas ( comme le isset en php ) ? Si non, tant pis, je ferais sans ;) !
        • Partager sur Facebook
        • Partager sur Twitter
          9 avril 2006 à 17:37:04

          Si tu avais demandé ceci à Google, Tu aurais trouvé ça, qui t'aurais donné cette solution :

          if ( typeof x == "undefined" ) {
          // x n'est pas définie
          } else {
          // x est définie
          }
          • Partager sur Facebook
          • Partager sur Twitter

          [JAVSCRIPT] Portée de variable

          × 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