IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[DOM] Constructeur invisible pour IE


Sujet :

JavaScript

  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Par défaut [DOM] Constructeur invisible pour IE
    Bonjour,

    j'ai ce code :

    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
    <html>
    <head>
    <script language="JavaScript">
    /** Notre constructeur de tache */
    Tache = function()
    {
    ...
    }
    
    Tache.prototype.creerNodeFormulaireTache = function ()
    {
    ...
    }
    
    .....
    </script>
    </head>
    <body>
    <div>
    <input type="button" value="Ajouter Formulaire" onclick="new Tache();" />
    <input type="button" value="Tout cacher" onclick="cacherDivInfos();" />
    <input type="button" value="Tout afficher" onclick="afficherDivInfos();" /><br />
    <input type="text" id="valeurNomTache" /><input type="button" value="Afficher" onclick="afficherDivInfo(document.getElementById('valeurNomTache').value);" /><br /><br />
    </div>
    Lors du clic sur le bouton Ajouter Formulaire, FF me trouve bien mon constructeur Tache, me crée mon objet et tout, un pur bonheur.

    En revanche IE me renvoie sur les roses en me disant gentimment que Tache est indéfini, avec comme ligne celle de mon bouton appelant le constructeur.

    Merci au gourou qui saura m'aider

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Par défaut
    Salut et merci de ta réponse.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var Tache = function(){ ... }
    J'ai toujours le même souci... Peut-être faut-il déplacer le code dans un fichier .js externe pour que cela soit fonctionnel ?!

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Par défaut
    C'est un peu plus problématique que prévu. La je teste mes autres boutons, qui ne sont pas liés à des objets, mais à des fonction simples, et ca me renvoie Objet Attendu

    Je ne m'y retrouve plus là

  5. #5
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Faute de synthaxe

    Si tu dis que ca passe sous FF, c'est surement une faute comme celle-ci :


  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Par défaut
    J'ai parcouru le code, mais il n'y a pas de : ou de , qui trainent et qui pourraient provoquer ce genre d'erreur, ou alors je ne t'ai absolument pas compris

    Pour dire, la quasi-totalité du code est de la manipulation DOM...

  7. #7
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Et que dit IE, à part Objet indéfini (voir boutton précédent) ?

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type='text/javascript'>
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Citation Envoyé par SpaceFrog
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type='text/javascript'>
    Les navigateurs s'en fichent de cette déclaration... Elle est juste nécéssaire pour passer le test XHTML 1.0

  10. #10
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Par défaut
    Bonjour,

    pour objet atendu je n'ai rien d'autre que la ligne du bouton appelant la fonction.

    Une partie du Code de l'objet Tache
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    /** Notre constructeur de tache */
    var Tache = function()
    {
    	this.nomTache = 'tache'+Tache.prototype.incTache; 
    	Tache.prototype.incTache++;
     
    	this.listeEvts = ["1=evt1", "2=evt2"];
    	this.listeFics = ["1=fic1", "2=fic2"];
     
    	//on crée notre nouveau div lié à la tache
    	div = document.createElement("div");
    	div.id = "div"+this.nomTache;
    	div.className = "affichee"; //IE
    	div.class = "affichee";
     
    	//on crée un sous-div contenant les informations sur la tache
    	div.appendChild(this.creerNodeFormulaireTache());
     
    	//on crée un sous-div contenant le tableau de presentation d'evt
    	div.appendChild(this.creerNodeListerEvt());
     
    	//on crée un sous-div contenant le formulaire d'ajout d'evt
    	div.appendChild(this.creerNodeFormulaireEvt());
     
    	//on crée un sous-div contenant le tableau listant les fichiers
    	div.appendChild(this.creerNodeListerFichiers());
     
    	//on crée un sous-div contenant le formulaire d'ajout des fichiers
    	div.appendChild(this.creerNodeFormulaireFichier());
     
    	document.getElementById("divForm").appendChild(div);
    }
     
    Tache.prototype.incTache = 1;
     
    /** Cette fonction permet de définir les champs de formulaire pour les données de la tache : libelle && description */
    Tache.prototype.creerNodeFormulaireTache = function ()
    {
    	divPresEvt = document.createElement("div");
    	divPresEvt.id = "divPresTache"+this.nomTache;
     
    	//Le champ input qui va accueillir le libelle de la tache
    	input = document.createElement("input");
    	input.id = this.nomTache+"-libelle";
    	input.name = this.nomTache+"-libelle";
    	input.type = "text";
     
    	//Le champ textarea qui va accueillir la description de la tache
    	text = document.createElement("textarea");
    	text.id = this.nomTache+"-description";
    	text.name = this.nomTache+"-description";
    	text.innerHTML = "Décrivez la tâche ici";	
    	text.cols = "38";
    	text.rows = "4"
     
    	text.onclick = function()
    	{
    		if(this.value == "Décrivez la tâche ici")
    			this.value = "";
    	}
     
    	//la construction de notre formulaire
    	divPresEvt.appendChild(document.createElement("br"));
    	divPresEvt.appendChild(document.createTextNode("Saisissez le libellé de la tâche : "));
    	divPresEvt.appendChild(input);
    	divPresEvt.appendChild(document.createElement("br"));
    	divPresEvt.appendChild(document.createElement("br"));
    	divPresEvt.appendChild(text);
     
    	return divPresEvt;
    }
    Une partie de mon code de fonctions outils
    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
    /* Fonctions liées à l'envoi du fichier */
     
    var actif=true;
    function notifierUploadFichier(chaine)
    {
    	actif=true;
     
    	if(chaine.substr(0, 6) == "ERREUR")
    	{
    		//erreur lors du traitement
    		alert("Une erreur a eu lieu durant le transfert, veuillez retenter d'envoyer le fichier");
    	}
    	else
    	{
    		//OK
    		alert("Fichier transféré");
    		item = chaine.split("=");
    		listes = document.getElementsByTagName("select");
     
    		for(var i=0; i<listes.length; i++)
    		{
    			if(listes[i].id.substr(0, 10) == "selecIdFic")	
    			{
    				option = document.createElement("option");
    				option.value = item[1];
    				option.innerHTML = item[1];
    				listes[i].appendChild(option);
    			}
    		}	
    	}
    }
    Ces deux parties se rertouvent dans le même fichier JS.

    Merci de votre aide

  11. #11
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Par défaut
    en fait IE ne digere pas les "monElem.class = ..." et bloque dessus plutot que de l'ignorer...

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  13. #13
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	div.className = "affichee"; //IE
    	div.class = "affichee";
    je mettais les deux

  14. #14
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    une seule suffit non ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  15. #15
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Par défaut
    ouep, className suffit, mais je voulais pas laisser le dernier mot à M$ :/

  16. #16
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    T'inquiète on l'aura un jour, on l'aura
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Variable invisible pour requête SQL !?
    Par yopuke dans le forum Langage
    Réponses: 26
    Dernier message: 11/05/2006, 16h44
  2. MySQL - LOCK invisible pour le SELECT
    Par SergentHeinz dans le forum Requêtes
    Réponses: 2
    Dernier message: 03/01/2006, 10h47
  3. Réponses: 1
    Dernier message: 10/06/2005, 11h37
  4. Stratégie DOM ou SAX pour xml ?
    Par blackhorus dans le forum Format d'échange (XML, JSON...)
    Réponses: 9
    Dernier message: 28/03/2005, 17h07
  5. Réponses: 8
    Dernier message: 05/06/2002, 11h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo