Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 02/07/2009, 18h40   #1
Invité de passage
 
Homme Claude Renaud
Consultant ERP
Inscription : octobre 2005
Messages : 14
Détails du profil
Informations personnelles :
Nom : Homme Claude Renaud
Localisation : France

Informations professionnelles :
Activité : Consultant ERP
Secteur : Conseil

Informations forums :
Inscription : octobre 2005
Messages : 14
Points : 4
Points : 4
Envoyer un message via MSN à ephemere
Par défaut Comportement étrange d'IE sur interprétation code d'initialisation

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 :

Code :
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);
}
Merci d'avance pour vos éventuelles réponses, d'habitude j'essaie de me débrouiller seul, mais là c'est trop mystique.

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
ephemere est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2009, 00h12   #2
Expert Confirmé
 
Avatar de emmanuel.remy
 
Emmanuel REMY
Inscription : novembre 2005
Messages : 2 826
Détails du profil
Informations personnelles :
Nom : Emmanuel REMY
Âge : 43

Informations forums :
Inscription : novembre 2005
Messages : 2 826
Points : 3 560
Points : 3 560
Salut,

Comment charges tu tes fichiers scripts supplémentaires ? Via Ajax et en insérant une balise script dans le header ?

ERE
__________________
Quand une tête pense seule, elle devient folle.
emmanuel.remy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2009, 16h22   #3
Invité de passage
 
Homme Claude Renaud
Consultant ERP
Inscription : octobre 2005
Messages : 14
Détails du profil
Informations personnelles :
Nom : Homme Claude Renaud
Localisation : France

Informations professionnelles :
Activité : Consultant ERP
Secteur : Conseil

Informations forums :
Inscription : octobre 2005
Messages : 14
Points : 4
Points : 4
Envoyer un message via MSN à ephemere
Par défaut Chargement des fichiers javascript supplémentaires

Bonjour,

Désolé de cette réponse tardive, je pensais recevoir un mail si une réponse avait été donnée, mais apparemment non.

En effet, je charge les autres fichier javascript appartement à une même bibliothèque en insérant des balises script dans le header via javascript.

De cette manière, l'utilisateur n'a pas à se soucier des autres fichiers autre que le principal pour utiliser la bibliothèque.


Mais finalement j'ai résolu le problème. J'ai restructurer le code d'appel, et maintenant cela marche sur Firefox, Opera et IE.

Si cela t'intéresses, je peux t'envoyer le dossier de mon projet en cours. C'est un peu brouillon car c'est en développement, mais peut-être auras-tu des conseils à me donner sur la structuration des applications javascript .

Merci beaucoup, bonne journée
ephemere est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2009, 16h29   #4
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 4 774
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 4 774
Points : 6 723
Points : 6 723
Salut,
Citation:
je pensais recevoir un mail si une réponse avait été donnée, mais apparemment non
Regarde en-dessous de l'envoie de message dans options supplémentaires, tu trouveras "Suivi de la discution" et tu choisis le type de notification.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2009, 16h32   #5
Invité de passage
 
Homme Claude Renaud
Consultant ERP
Inscription : octobre 2005
Messages : 14
Détails du profil
Informations personnelles :
Nom : Homme Claude Renaud
Localisation : France

Informations professionnelles :
Activité : Consultant ERP
Secteur : Conseil

Informations forums :
Inscription : octobre 2005
Messages : 14
Points : 4
Points : 4
Envoyer un message via MSN à ephemere
Ha merci beaucoup

Je ne suis vraiment pas un habitué des forums
ephemere est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 20h09.


 
 
 
 
Partenaires

Hébergement Web