|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Jo Inscription : novembre 2010 Messages : 25 ![]() |
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 :
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. |
||
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé
![]() ![]() Urbaniste Inscription : juillet 2004 Messages : 1 421 ![]() |
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 :
|
||
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Jo Inscription : novembre 2010 Messages : 25 ![]() |
j'ai passé la string 'unsafe' en seconde paramètre, mais cela ne change rien. Ma fonction n'est toujours pas visible.
|
|
|
00
|
|
|
#4 | ||
|
Membre expérimenté
![]() Développeur Inscription : février 2010 Messages : 360 ![]() |
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 :
|
||
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Jo Inscription : novembre 2010 Messages : 25 ![]() |
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. |
|
|
00
|
|
|
#6 |
|
Membre expérimenté
![]() Développeur Inscription : février 2010 Messages : 360 ![]() |
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 ? |
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() Jo Inscription : novembre 2010 Messages : 25 ![]() |
Si je définie scriptFile en tant que variable global, son contenu sera visible depuis la fonction 2, mais l'eval se faisant dans la fonction 1, le contenu du fichier de script évalué et exécuté n'est toujours pas visible depuis la fonction 2.
Je ne crois pas qu'une solution soit possible sans passer par un eval global et non dans une fonction. |
|
|
00
|
|
|
#8 |
|
Expert Confirmé
![]() ![]() Urbaniste Inscription : juillet 2004 Messages : 1 421 ![]() |
je suppose que tu est sous IIS
tu peux inclure un script en utilisant mais je ne sais quel est alors le cycle d'évaluation A+JYT |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com