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 04/12/2009, 13h15   #1
Membre à l'essai
 
Inscription : mars 2005
Messages : 99
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 99
Points : 22
Points : 22
Par défaut [Différences entre deux postes] Initialisation d'un élément

Messieurs Dames, bonjour,

Je vous explique un petit souci que je trouve fortement étrange et (surtout) que je n'arrive pas à reproduire :

J'ai un site dont certaines listes déroulantes ont été réécrites pour les personnaliser. Une routine d'initialisation permet d'attribuer des styles aux éléments la composant (Cf. code plus bas) et c'est elle qui plante (parentNode ou parentElement non défini, alors qu'il l'est sur les autres postes...).

Mon souci :
- sur la majorité des postes, ça marche trèèèès bien.
- sur un poste, ça marche pô du tout (rien ne déroule)

J'ai bien dit poste : le symptome est indépendant du navigateur et si on se connecte au-dit poste (serveur, donc), ça plante aussi.
Le seul moyen qu'on ait trouvé pour reproduire l'erreur sur un autre poste, c'est de faire une erreur de synthaxe dans la fonction d'initialisation...

Si vous aviez la moindre idée de commencement de début de piste pour corriger ce souci, je vous en serait éternellement reconnaissant.

Merci, donc et bon WE à toutes zé tous.

Comme promis, le bout de code :

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
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
function __initDropDown(dropdownroot, dropimage, listitems, selectedValueField, selectedTextField, postback, showOnLoad, enabled, handleClick){
//try{
    var drop = document.getElementById(dropimage);
    if (enabled == "true"){
        drop.onmouseout = function(){
            if (drop != null) {
                drop.className = "drop";
                if (drop.parentNode != null) {
                    drop.parentNode.className = "selected";
                }
            }
        }
        drop.onmouseover = function(){
            if (drop != null) {
                drop.className = "drop dropon";
                if (drop.parentNode != null) {
                    drop.parentNode.className = "selected_focus";
                }
            }
        }
        drop.onmousedown = function(){
            if (drop != null) {
                drop.className = "drop dropclic";
            }
        }
        drop.onmouseup = function(){
            if (drop != null) {
                drop.className = "drop dropon";
            }
        }
        drop.onclick = function(event){
            __showDropDown(listitems,dropdownroot,event); 
            if (drop != null) {
                if (drop.parentNode != null) {
                drop.parentNode.className = "selected_focus";}
            }
        }
        drop.onfocus = function(event){
            if (drop != null) {
                if (drop.parentNode != null) {
                drop.parentNode.className = "selected_focus";
                }
            }
        }
        drop.onblur = function(event){
            if (drop != null) {
            if (drop.parentNode != null) {
                drop.parentNode.className = "selected";
                }
            }
        }
 
    }else{
    if (drop != null) {
        drop.className = "drop dropreadonly";
        }
    }
 
    var list = document.getElementById(listitems);
    __listdropdown.push(list);
 
    if (document.getElementById(showOnLoad).value.toLowerCase() != "true"){
        list.style.display = "none";
    }else{
        document.getElementById(listitems).style.display = "";
        if (document.getElementById(dropdownroot).clientWidth == 0){
            document.getElementById(listitems).style.width= "100%" ;
        }else{
            document.getElementById(listitems).style.width= document.getElementById(dropdownroot).clientWidth + "px" ;
        }
        idDdlOpen = listitems;
    }
    document.getElementById(showOnLoad).value = "false";
 
    drop.onkeyup = function(event){
        if (event != null) {
            touche = window.event ? event.keyCode : event.which;
            if (touche == 40) { // on déroule le menu lorsque l'on capture la touche fleche bas
                __showDropDown(listitems,dropdownroot,event);
            }
        }
    }
 
    var items = list.getElementsByTagName("div");
    for (var i=0; i<items.length; i++){
        if (items[i].parentNode == list){
            if (items[i].className = "item"){
                items[i].onmouseover = function(){
                    this.className = "itemover";
                }
                items[i].onmouseout = function(){
                    this.className = "item";
                }
 
                if (handleClick.toLowerCase() == "true"){
                    items[i].onclick = function(event){
                        selectedChanged = __handledropdownclick(this, dropdownroot, selectedValueField, selectedTextField, showOnLoad, event);
                        drop.focus();
                        if (selectedChanged){
                            eval(postback);
                        }
                    }
                } else {
                    items[i].onclick = function(event){
                        __stopPropagation(event);
                    }
                }
            }else{
                items[i].onclick = function(event){
                    __stopPropagation(event);
                }
            }
        }
    }
 
    list.onclick = function(event){
        __stopPropagation(event);
    }
//    }
//catch(err)
//{} 
}
Skyou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2009, 13h18   #2
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 12 834
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 12 834
Points : 29 886
Points : 29 886
Salut.
Si le problème dépend du poste et pas d'un navigateur, il y a peu de chances que le problème vienne du script...
Est-ce que ce ne serait pas plutôt un problème d'activation de JavaScript ?
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2009, 13h22   #3
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 29 063
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

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

Informations forums :
Inscription : mars 2002
Messages : 29 063
Points : 43 272
Points : 43 272
les paramètres regionnaux son ils identiques sur tous les postes ???
separateur decimal, charset par defaut ... ?
les versions des navigateurs son identiques ?
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2009, 13h39   #4
Membre à l'essai
 
Inscription : mars 2005
Messages : 99
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 99
Points : 22
Points : 22
Z'êtes rapides, les gens, merci

Alors pour vous répondre dans l'ordre :
Javascript est bien activé partout.
Pour les paramètres régionaux, va falloir que je vérifie, tiens. Mais normalement, les paramètres du navigateur sont prioritaires sur ceux du poste (virgule si en français, point si en anglais dans le choix de la langue de Firefox, par exemple).
Mais ya aucune valeur numérique utilisée jusqu'au déclenchement du bug...
Les versions des navigateurs sont les mêmes : dernières de IE et Firefox : même problème sur les deux...

L'activation ou non du débogueur de script d'IIS ne change rien non plus.

Je viens de changer quelques trucs suite à vérification de la synthaxe avec Javascript Lint (=== au lieu de ==) , mais il ne me sortait que des avertissements...
Skyou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2009, 14h21   #5
Responsable Modération
 
Homme
Inscription : janvier 2007
Messages : 9 034
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2007
Messages : 9 034
Points : 14 564
Points : 14 564
Bonjour,
Citation:
Envoyé par Skyou Voir le message
J'ai bien dit poste : le symptome est indépendant du navigateur et si on se connecte au-dit poste (serveur, donc), ça plante aussi.
Pas bien clair, là ...
Le serveur utilisé est le même dans tous les cas ?
Et seul un des postes clients pose problème, c'est bien ça ?
Citation:
Envoyé par Skyou Voir le message
L'activation ou non du débogueur de script d'IIS ne change rien non plus.
Et un debuggeur côté client (style Firebug) ?

A+
E.Bzz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2009, 15h24   #6
Membre à l'essai
 
Inscription : mars 2005
Messages : 99
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 99
Points : 22
Points : 22
Désolé pour le confusage : dans le cas de l'application, pour l'instant, serveur et client sont les mêmes (butineur sur le serveur).
C'est dans le cadre de mon souci que je me suis connecté depuis un autre poste sur le serveur principal pour cibler l'origine du dit-souci .
=> Problème reproduit sur le client, donc ça vient du serveur. Parce qu'avec le même client, en allant taper sur un autre serveur, ça fonctionne (allez comprendre).

Et FireBug m'a juste dit que "parentNode" (Cf code fourni) n'était pas défini, pas moyen de savoir pourquoi vu que le projet est composé de pas mal de couches et surcouches dont certaines ne peuvent être débogguées (ya deux G ?).

Et comme le poste incriminé est actuellement sur la route, je peux pas le tester en live... Mais il faut qu'il fonctionne à l'arrivée...
Vive l'organisation
Skyou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2009, 15h41   #7
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 29 063
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

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

Informations forums :
Inscription : mars 2002
Messages : 29 063
Points : 43 272
Points : 43 272
quel est le default charset du serveur ?
__________________
Ma page 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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2009, 15h56   #8
Membre à l'essai
 
Inscription : mars 2005
Messages : 99
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 99
Points : 22
Points : 22
Sur ceux qui fonctionnent : ISO-8859-1
Sur celui qui est actuellement dans un coffre de bagnole sur l'autoroute, bah j'ai du mal à lui demander (désolé)

Mais si le problème persiste, je ferai analyser.
Mais a priori, le FireFox utilisé venait juste d'être installé, donc le default charset devait être celui de l'install, s'il y en a un.

P.S. : C'est où, les inscriptions au CCMPTP ?
Skyou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2009, 11h05   #9
Membre à l'essai
 
Inscription : mars 2005
Messages : 99
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 99
Points : 22
Points : 22
Bon, bah résolu.

Le souci venait des != à la place des !== et des == à la place des ===.
Merci le validateur de Javascript.

Bizzarement, ces "erreurs" n'étaient vues que comme des warnings dans l'analyseur...

Vivement que Visual Studio intègre correctement le JS dans son interface, tiens... A mais, attendez... Java... c'est pas un concurrent, ça ? Ah, bah m...
Ca risque pas d'arriver avant un bout de temps, alors
Skyou 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 18h29.


 
 
 
 
Partenaires

Hébergement Web