Bonjour,
Je vis une situation plutôt banale à laquelle je tente de trouver une solution définitive. C'est à dire que j'ai du code javascript qui ne s'exécute pas à la suite de code primordial à son exécution, ce qui cause des erreurs javascript. Je m'explique :
MonObjet est défini dans monfichier.js mais le navigateur saute à la définition de maVar avant d'avoir terminé l'exécution de la fonction import_javascript(), ce qui cause l'erreur "MonObjet is undefined".
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 function import_javascript(src) { var head_tags = document.getElementsByTagName('head'); if((head_tags != undefined)&&(head_tags.length > 0)) { var head_tag = head_tags[0]; var script_tag = document.createElement('script'); script_tag.setAttribute('type', 'text/javascript'); script_tag.setAttribute('src', src); head_tag.appendChild(script_tag); } } [...] // Code HTML <script type="text/javascript"> import_javascript('repertoire/monfichier.js'); </script> [...] // Code HTML <script type="text/javascript" defer> //Appelons là Ligne #1 var maVar = new MonObjet(); //Appelons là ligne #2 </script>
Je sais que je ne peux me fier sur defer ou onLoad pour que le navigateur exécute ma ligne au bon moment. J'aimerais donc que ma Ligne #2 ne s'exécute qu'à condition que MonObjet ait été préalablement défini et attende que MonObjet soit défini sinon.
J'ai essayé d'étudier le Narrative Javascript après avoir essayé le code suivant :
J'en suis venu à la conclusion peut-être erronée qu'il me faudrait un événement qui causerait le déclenchement de la définition de maVar. Bien entendu onDefine est un événement qui n'existe pas à ma connaissance, je me tourne donc vers vous, autres développeurs qui ont assurément déjà vécu cette frustration, afin de savoir comment vous avez résolu vos problèmes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 while(MonObjet == undefined) {}; //IE n'aime vraiment pas ça var maVar = new MonObjet();
Partager