Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire Cours JavaScript, 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
 
Date d'inscription: octobre 2005
Messages: 7
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 :
 
 
// 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
Vieux 03/07/2009, 00h12   #2
Rédacteur/Modérateur
 
Avatar de emmanuel.remy
 
Nom : Emmanuel REMY
Date d'inscription: novembre 2005
Localisation: Grand Perron des Encombres
Âge: 41
Messages: 2 466
Par défaut

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
Vieux 06/07/2009, 16h22   #3
Invité de passage
 
Date d'inscription: octobre 2005
Messages: 7
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
Vieux 06/07/2009, 16h29   #4
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Date d'inscription: septembre 2007
Localisation: Madagascar
Messages: 2 014
Par défaut

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
Vieux 06/07/2009, 16h32   #5
Invité de passage
 
Date d'inscription: octobre 2005
Messages: 7
Envoyer un message via MSN à ephemere
Par défaut

Ha merci beaucoup

Je ne suis vraiment pas un habitué des forums
ephemere est déconnecté   Envoyer un message privé Réponse avec citation
NEWS JAVASCRIPTF.A.Q JSTUTORIELS JSSOURCES JSLIVRES JS

Réponse Proposer ce sujet en actualité

Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non



Fuseau horaire GMT +1. Il est actuellement 05h39.


Vos questions techniques : forum d'entraide JavaScript - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.