IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Variable global en JS


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut Variable global en JS
    Bonjour,

    Je voudrais savoir comment on définit des variabales globales en javascript. Le but est de dé&finir des variable utilisé sur toutes les pages.

    J'ai essayé de définir dans un script une var et puis de l'afficher depuis un autre script avec window.MA_VARIABLE mais cela ne fonctionne pas (source : mozilla developper corner).

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    il n'existe pas de variables de session en javascript ...

    une variable globale est une variable reconnue sur toute LA page ...

    les variables window focntionnent sous IE ET FFX

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    window['variable']="coucou";
    alert(variable);
    mais ce ne sont que des variables globales au niveau de la page et qui ne sont pas persistantes d'une page à l'autre

    Sous IE il existe les vairable navigator
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    navigator['variable']="coucou";
    ou 
    navigator.variable="coucou";
    qui sont visibles d'une page à l'autre, mais limité à IE ...


    Il ne reste donc que les cookies ...

  3. #3
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    il n'existe pas de variables de session en javascript ...

    une variable globale est une variable reconnue sur toute LA page ...

    les variables window focntionnent sous IE ET FFX

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    window['variable']="coucou";
    alert(variable);
    mais ce ne sont que des variables globales au niveau de la page et qui ne sont pas persistantes d'une page à l'autre

    Sous IE il existe les vairable navigator
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    navigator['variable']="coucou";
    ou 
    navigator.variable="coucou";
    qui sont visibles d'une page à l'autre, mais limité à IE ...


    Il ne reste donc que les cookies ...
    c'est ce que je voulais mais cela ne semble pas fonctionner
    j'attache un script que j'ai appelé global à toutes mes pages
    j'écris ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    window.onload=declare;
     
    function declare()
    {
    	window['allowed'] = <?php echo $_SESSION["isJavascriptAllowed"] ?>; 
    }
    ce qui devrait me rajouté une variable allowed
    or dans un autre script (lié à la même page)

    je fais un mais cela ne fonctionne pas

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    or dans un autre script (lié à la même page)
    lié ??? qu'entends tu par lié ...
    si ce n'est pas sur la même page c'est mort ...
    global en javascript limite laportée à la page

  5. #5
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut
    lié signifie, pour moi, que la page est déclaré dans une balise <script>
    et que son URL est le contenu de l'attribut src

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    dans une balise script ???

    page ???
    tu veux dire un js externe ????

    lier une page html dans un script

    Désolé ce n'est vraiment pas clair ...

  7. #7
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut
    en clair

    pour une page "common" se trouvant dans javascript/

    lié signifié

    l'ajout d'une balise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript" src="javascript/common.js"></script>
    dans la partie head de la page html

    j'espère avoir été clair

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    si le script est ainsi lié la variable globale doit être reconnue ...

    la page html :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <script type='text/javascript' src='test.js'></script>
    </head>
     
    <body onload="foo();alert(glob)">
     
    </body>
    le script externe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function foo(){window['glob']='coucou'}
    la variable globale est déclarée dans une fonction du fichier externe ...
    CQFD l'alaert montre bien que la portée de la variable est globale ...

    Je suppose que tu dois avoir une erreur d'instanciation

  9. #9
    Membre confirmé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Points : 467
    Points
    467
    Par défaut
    non cela ne fonctionne pas

    je fais un alert sur la page de vérification de formulaire et voici l'erreur alors que j'ai bien
    défini
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window['allowed'] = <?php echo $_SESSION["isJavascriptAllowed"] ?>;
    dans ma page common (là où sont déclaré les variables globales)

    bien sur l'ordre de liaison compte
    donc j'ai liée
    1/ prototype (la lib utilsé)
    2/ Common (où je déclare les variables globales)
    3/ le script qui vérifie mon formulaire (unique à la page)

  10. #10
    Membre expérimenté
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Points : 1 413
    Points
    1 413
    Par défaut
    tu es sur d'avoir quelque chose dans ta variable $_SESSION?

  11. #11
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 898
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 898
    Points : 16 364
    Points
    16 364
    Par défaut
    Citation Envoyé par sliderman Voir le message
    je fais un alert
    Regarde le code de SpaceFrog ..

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    tu as donc un problème d'instanciation, tu essayes de faire un alert de la variable avant qu'elle ne soit déclarée ...
    rien à voir avec la portée de la variable...

    déclare la variabel avant de faire l'alert ... !!!

Discussions similaires

  1. Variable globale / Propriété des threads
    Par rgarnier dans le forum XMLRAD
    Réponses: 4
    Dernier message: 03/10/2003, 11h49
  2. Cacher Variable Url avec Variable Globale
    Par danuz dans le forum XMLRAD
    Réponses: 6
    Dernier message: 26/09/2003, 18h20
  3. Variable "globale" (dans plusieurs templa
    Par mattmat dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 17/06/2003, 20h22
  4. question sur les variables globales et les thread posix
    Par souris_sonic dans le forum POSIX
    Réponses: 5
    Dernier message: 13/06/2003, 14h59
  5. les variables globales static
    Par gRRosminet dans le forum C
    Réponses: 8
    Dernier message: 27/04/2002, 09h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo