Bonjour à tous,
Je viens vers vous avec un soucis que je ne parviens pas à régler meme en "googlelisant" à fond...j'ai bien peur que la solution n'existe pas, mais au cas ou je préfère quand meme demander votre avis...
Voila, dans le cadre du developpement d'un mini framework JS, je me refuse à includer systématiquement une ribambelle de fichier JS (1 par type de composants) dans chacun des mes fichiers HTML.
Ce que je veux, c'est avoir une seul balise script pointant vers un fichier "engine.js" et que ce soit celui-ci qui include (ou non) les composant (fichier js) dont la page à besoin
Ca parait compliqué, mais je m'y retrouve et tout fonctionne bien à un (gros) détail près.
En effet, ma fonction pour includer utiliser le DOM pour créer une nouvelle balise de type "script" puis lui affecter un type (text/javascript) et un src (chemin vers le js en question).
Le soucis, c'est que quand j'utilise cette fonction, bien que le script soit bien ajouté à l'arbre DOM (en mettant en simple alert() en début du fichier à includer, on voit bien que le script est interprété puisque l'alert apparait à l'execution), les fonctions déclarées dans le JS includé ne sont pas directement accessible. Il me faut sortir de la fonction ayant fait l'include avant qu'elle ne soient accessible.
pour illustrer un peu voici 2 petits exemples:
ce qui marche po:
ce qui marche
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
27
28 <html> <head <script type='text/javascript'> function include(sFilePath) { var oScript = document.createElement('script'); oScript.type = 'text/javascript'; oScript.src = sFilePath; document.getElementsByTagName('heade')[0].appendChild(oScript); } function test() { include('monfichier.js'); fonctiondansmonfichier(); } </script> </head> <body> <input type='button' OnClick='test();'> </body> </html>
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
27
28 <html> <head <script type='text/javascript'> function include(sFilePath) { var oScript = document.createElement('script'); oScript.type = 'text/javascript'; oScript.src = sFilePath; document.getElementsByTagName('heade')[0].appendChild(oScript); } function test() { include('monfichier.js'); } </script> </head> <body> <input type='button' OnClick='test();'> <input type='button' OnClick='fonctiondansmonfichier();'> </body> </html>
Voila, bah si quelqu'un pouvait me dire comment faire en sorte de pouvoir dierctement utiliser les fonctions ajouter ainsi ca m'arrangerait très beaucoup [smile]
merci d'avoir lut jusqu'au bout en tous cas
Partager