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 :

Port�e d'une variable globale


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    49
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 49
    Par d�faut Port�e d'une variable globale
    Bonjour,

    Pour �claircir mon code, j'essaie de d�clarer dans un fichier "global.js" des variables qui reviennent dans plusieurs de mes scripts.

    J'ai ceci dans l'en t�te de mes pages webs :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    		<SCRIPT language="JavaScript" src="global.js"></SCRIPT>
    		<SCRIPT language="JavaScript" src="monscript.js"></SCRIPT>
    Dans "monscript.js", je souhaite appeler des variables d�clar�es dans "global.js". Par exemple pour les accents, j'ai ceci dans "global.js" :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    var aGrave = String.fromCharCode(224); // à
    var eAigu  = String.fromCharCode(233); // é
    ...
    Et dans mes fonctions de "monscript.js", j'ai des alertes qui font appel � ces variables :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    alert("Test de code accentu"+eAigu+".");
    Et �a ne fonctionne pas, 'eAigu' est ind�fini quand je teste mes pages sous IE6. Bien s�r, quand je place la d�claration de la variable directement dans "monscript.js", �a passe, mais j'aimerais avoir une solution g�n�rique. Est-ce possible ? Merci pour tout conseil.

  2. #2
    Expert confirm�
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    D�tails du profil
    Informations personnelles :
    �ge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par d�faut
    c est etrange ca devrais marcher, essayes en mettant type='text/javascript' au lieu de language et script en minuscules

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    49
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 49
    Par d�faut
    Merci pour ta r�ponse.
    Ca ne change rien, variable toujours ind�finie...

  4. #4
    Expert confirm�
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    D�tails du profil
    Informations personnelles :
    �ge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    window.onload = function(){
    alert("Test de code accentu"+eAigu+"."); 
    }
    car il faut certainement que ta page soit charg�e pour acc�der a tout

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    49
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 49
    Par d�faut
    Je ne suis pas s�r d'avoir bien compris ton conseil.

    J'ai essay� ceci :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <html>
      <head>
        <script language="JavaScript" src="global.js"></script >
        <script language="JavaScript" src="monscript.js"></script > 
      </head>
    <body onload="alert('Test de code accentu'+eAigu)">
    ...
    Pas d'alerte au chargement de la page, mais la m�me erreur : 'eAigu' ind�finie.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    49
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 49
    Par d�faut
    Bon j'ai fait un test ultime.

    J'ai ajout� mes variables dans la partie <head> de ma page.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <html>
      <head>
        <script>
        var aGrave = String.fromCharCode(224); // à
        var eAigu  = String.fromCharCode(233); // é
        ... 
        </script>
      <head>
    <body onload="alert('texte accentu'+eAigu)">
    ...
    Le message d'alerte s'affiche bien au chargement de la page, avec l'accentuation correcte.

    J'ai pris ces d�clarations de variable, que j'ai mises dans un fichier script "test.js". Le fichier "test.js" contient donc :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
        var aGrave = String.fromCharCode(224); // à
        var eAigu  = String.fromCharCode(233); // é
        ...
    Le code de ma page web est devenu :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    <html>
      <head>
        <script language="JavaScript" src="test.js"></script> 
      <head>
    <body onload="alert('texte accentu'+eAigu)">
    ...
    Et l� le message d'alerte n'appara�t pas au chargement de la page. J'obtiens l'erreur "'eAigu' est ind�fini".
    Il semblerait donc qu'on ne puisse pas utiliser de variables globales d�clar�es dans un fichier js, celles-ci doivent apparemment �tre �crites dans le code de la page. Ca m'�tonne un peu mais bon...

  7. #7
    Expert confirm�
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    D�tails du profil
    Informations personnelles :
    �ge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    <html>
      <head>
        <script type="text/javascript" src="test.js"></script>
      <head>
    <body onload="alert('texte accentu'+eAigu)"> 
    </body>
    </html>
    moi ca ca marche
    ie et ffx ...

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    49
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 49
    Par d�faut
    Bon je suis reparti de fichiers vierges pour tester.

    J'ai donc cr�� deux fichiers minimaux : test.html et test.js

    Voici le code pour test.html :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <html>
      <head>
        <script language="javascript" src="test.js"></script> 
      </head>
      <body onload="alert('Texte accentu'+eAigu)">
      </body>
    </html>
    Et le code pour test.js :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    var eAigu=String.fromCharCode(233);
    Et effectivement �a fonctionne tr�s bien sous IE et Firefox.


    Je penchais donc pour un probl�me de cache ou quelquechose du genre avec mon navigateur. J'ai donc vid� le cache et l'historique d'IE, et j'ai fait un test de ma page avec un fichier script s�par� contenant uniquement mes d�clarations de variables accentu�es, et c'est pass� !! J'ai ensuite remis mes d�clarations dans le fichier script de base (global.js), et c'est bien pass�.
    Je vide pourtant assez r�guli�rement mon cache...Je sais pas si c'est vraiment �a qui a d�bloqu� la chose...Bref c'est r�solu.

    Merci pour ton aide siddh !

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [Sécurité] Activation d'une variable globale
    Par Ricou13 dans le forum Langage
    R�ponses: 3
    Dernier message: 28/09/2005, 10h24
  2. [quai debutant] : creation d'une variable globale.
    Par bapman344 dans le forum Access
    R�ponses: 4
    Dernier message: 23/06/2005, 11h33
  3. R�ponses: 5
    Dernier message: 25/05/2005, 22h29
  4. Comment déclarer une variable globale
    Par davkick dans le forum C
    R�ponses: 13
    Dernier message: 20/05/2005, 18h50
  5. utilisation d'une variable globale
    Par ZZ dans le forum ASP
    R�ponses: 3
    Dernier message: 03/12/2003, 19h11

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