Attentre la définition d'un objet avant de l'utiliser (onDefine?)
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 :
Code:
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> |
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".
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 :
Code:
1 2 3
|
while(MonObjet == undefined) {}; //IE n'aime vraiment pas ça
var maVar = new MonObjet(); |
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.