Bonjour,
j'aimerai vous soumettre mon problème au cas où l'un de vous aurait la réponse "miracle".
Je suis en train de créer une classe qui permet de manipuler les propriétés CSS de n'importe quelles balises html lorsque celles-ci sont identifiées par une règle dans une feuille de style CSS externe et ceci en javascript.
De cette manière, plus aucun code CSS "en ligne" ne traînera dans la page HTML.
Comme je refuse de tout mettre dans un seul fichier javascript et que je refuse aussi de mettre des balises <script></script> à tout va pour importer les fichiers JS qui conviennent dans la page HTML, j'ai entrepris de créer une fonction dans la classe principale qui utilisera les autres fichiers qui permet d'insérer directement dans me flux de la page ces balises.
J'ai besoin d'initialiser l'objet principal (HTMLElement) car je veux n'avoir à l'instancier qu'une fois. Donc je créé une variable global (pas bien me dirons certains).
Mais cette objet a besoin que les autres pages javascript soient chargées. Comme les fichiers chargés dynamiquement ne sont pris en comptes que lorsque le script qui les a chargé a rendu la main, j'ai fait appel à la fonction de chargement des fichier JS en dehors de toutes fonctions, puis dans une fonction appelée sur l'événement onload du body, j'ai fait appel au constructeur de l'objet principal HTMLElement.
Je me suis dit que le code en dehors de toutes fonctions étant définit avant tout autre code, une fois chargé par le navigateur sera exécuté avant la fonction appelée sur l'événement onload du body.
Il se trouve que pour Firefox et Opéra, cela marche comme je l'avais prévu, mais sous IE, pour que ça marche, je suis obligé de faire afficher un alert()pour que la variable globale contenant l'objet HTMLElement n'ait pas la valeur null.
Voici le code dont je parle ci-dessus :
Merci d'avance pour vos éventuelles réponses, d'habitude j'essaie de me débrouiller seul, mais là c'est trop mystique.
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
29
30
31
32 // Variable global de mon objet principal var html_element = null; // Appel de la fonction de chargement dynamique des autres fichier JS // nécessaire au fonctionnement de HTMLElement IncHTMLElement(); //--------- // Curieux // // Sous IE, lorsque je décommente ce code, tout fonctionne bien, la variable // html_element n'est pas nul, si c'est commenté oui // C'est comme s'il fallait qu'il y ait un alert() pour que le code s'exécute 8O //--------- // var test = 'test'; // alert(test); // Fonction appelé lors de l'événement onload du body function InitEnvironment() { html_element = new HTMLElement(); } function ChangeBorderColor(color, ind_ssheet, ind_rule, ssheet, rule) { html_element.SetRuleReference(ind_ssheet, ind_rule); html_element.box_properties.SetBorderColor(color); }
Bonne soirée à vous
ps : si je n'ai pas été clair sur quoi que ce soit, n'hésitez pas à me demander des précisions merci
Partager