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 :

Importer un fichier javascript


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    30
    D�tails du profil
    Informations personnelles :
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 30
    Par d�faut Importer un fichier javascript
    Bonjour,

    J'ai un bout de code qui importe un fichier javascript contenant une fonction test � partir d'une fonction 1 de mon code principale.

    Cette fonction 1 ex�cute une autre fonction 2 pr�sente dans mon code principale, et j'aimerais que ma fonction de test import�e soit accessible depuis ma fonction 2.

    Pour ceux qui n'ont pas trop compris mes explications voici le code simplifi�e :

    Code du programme principale :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    function first(){
     
    	scriptFile = loadScriptFile("D:\\file2.js");
    	eval(scriptFile);
     
    	alert(typeof test);
     
    	second();
    }
     
    function second(){
     
    	alert(typeof test);
     
    }
     
    function loadScriptFile(filename){
     
    	var fso = new ActiveXObject("Scripting.FileSystemObject");
    	var otf = fso.OpenTextFile(filename, 1);
    	var scriptFile = otf.ReadAll();
    	otf.Close();
    	return scriptFile;
    }
    Code du fichier import�e :
    Donc le code du programme principale est appel�e gr�ce � la fonction first.
    La premi�re alert de la fonction first donne 'function'.
    Mais la deuxi�me alert de la fonction seconde donne 'undefined'.

    Avez-vous une solution pour rendre accessible les fonctions import�s depuis la fonction 2 sans charger le script en global ni en chargeant le script depuis la fonction 2 ?

    Merci.

  2. #2
    Expert confirm�
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Urbaniste
    Secteur : Sant�

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par d�faut
    bonjour.

    jscript renforce la s�curit� de eval et les variables et fonctions d�finies dans eval sont hors de port�e

    http://msdn.microsoft.com/en-us/libr...jscriptanchor7

    essais un truc genre
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
      scriptFile = loadScriptFile("D:\\file2.js");
      eval(scriptFile,'unsafe');
    A+JYT

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    30
    D�tails du profil
    Informations personnelles :
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 30
    Par d�faut
    j'ai pass� la string 'unsafe' en seconde param�tre, mais cela ne change rien. Ma fonction n'est toujours pas visible.

  4. #4
    Membre chevronn� Avatar de nadox
    Homme Profil pro
    D�veloppeur
    Inscrit en
    F�vrier 2010
    Messages
    360
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activit� : D�veloppeur
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : F�vrier 2010
    Messages : 360
    Par d�faut
    Bonjour,

    Je n'ai pas Internet Explorer sous la main pour tester, mais �a peut marcher en utilisant un script dynamique peut-�tre ?

    Si, comme je le suppose le readAll de l'activeX renvoie une chaine, tu dois pouvoir faire quelque chose comme �a :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    function first(){
     
        loadScriptFile("D:\\file2.js");
     
        alert(typeof test);
     
        second();
    }
     
    function second(){
     
        alert(typeof test);
     
    }
     
    function loadScriptFile(filename){
        var fso = new ActiveXObject("Scripting.FileSystemObject");
        var otf = fso.OpenTextFile(filename, 1);
        var scriptFile = otf.ReadAll();
        otf.Close();
     
        var scriptTag = document.createElement("script");
        scriptTag.text = scriptFile;
        document.getElementsByTagName('head')[0].appendChild(scriptTag);
    }

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    30
    D�tails du profil
    Informations personnelles :
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 30
    Par d�faut
    Effectivement, le fait de rajouter le script lu � la balise head de la page rend ma fonction visible.

    Seul inconv�nient que j'ai oubli� de pr�ciser, ce script est ex�cut� c�t� serveur donc pas d'objet window, donc cette solution ne fonctionne pas pour mon cas.

  6. #6
    Membre chevronn� Avatar de nadox
    Homme Profil pro
    D�veloppeur
    Inscrit en
    F�vrier 2010
    Messages
    360
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activit� : D�veloppeur
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : F�vrier 2010
    Messages : 360
    Par d�faut
    Pr�cision effectivement utile !

    Je ne sais pas si �a peux changer quelque chose, mais dans la premi�re fonction, scriptFile n'est pas pr�c�d� du mot-clef var, je suppose que l'interpr�teur la d�clare donc dans le scope de la fonction, et que l'eval(m�me 'unsafe') fait la m�me chose du contenu de cette variable...

    Ne faudrait-il pas d�clarer explicitement la variable dans le scope global ?

Discussions similaires

  1. importation de fonction javascript dans un autre fichier javascript
    Par kouadjalain dans le forum G�n�ral JavaScript
    R�ponses: 5
    Dernier message: 16/07/2007, 16h44
  2. Probleme import fichier javascript
    Par snoozer dans le forum Servlets/JSP
    R�ponses: 5
    Dernier message: 30/08/2006, 11h59
  3. Importer un fichier IDAPI32.cfg propre � chaque appli(BDE)
    Par carlhian dans le forum Bases de donn�es
    R�ponses: 3
    Dernier message: 07/05/2004, 14h18
  4. Importer des fichiers textes d�limit�s
    Par Invit� dans le forum Outils
    R�ponses: 2
    Dernier message: 23/09/2002, 13h56
  5. [DEV-C++]#import de fichier .tlb
    Par pdl dans le forum Dev-C++
    R�ponses: 6
    Dernier message: 19/07/2002, 22h46

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