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 :

[Différences entre deux postes] Initialisation d'un élément


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 107
    Points : 63
    Points
    63
    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 : 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
    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)
    //{} 
    }

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    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 ?

  3. #3
    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 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    les paramètres regionnaux son ils identiques sur tous les postes ???
    separateur decimal, charset par defaut ... ?
    les versions des navigateurs son identiques ?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 107
    Points : 63
    Points
    63
    Par défaut
    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...

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    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+

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 107
    Points : 63
    Points
    63
    Par défaut
    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

  7. #7
    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 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    quel est le default charset du serveur ?

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 107
    Points : 63
    Points
    63
    Par défaut
    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 ?

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 107
    Points : 63
    Points
    63
    Par défaut
    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

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

Discussions similaires

  1. Différence entre deux dates
    Par Azharis dans le forum Access
    Réponses: 3
    Dernier message: 11/01/2006, 11h58
  2. [access] différence entre deux champs
    Par loutente dans le forum Langage SQL
    Réponses: 1
    Dernier message: 17/08/2005, 16h57
  3. Différence entre deux dates
    Par pittzz dans le forum Oracle
    Réponses: 5
    Dernier message: 18/07/2005, 13h24
  4. Comment obtenir la différence entre deux dates ?
    Par jbat dans le forum Langage
    Réponses: 4
    Dernier message: 02/06/2005, 10h34
  5. Résultats erroné différence entre deux types TDateTime
    Par Alghero dans le forum C++Builder
    Réponses: 6
    Dernier message: 12/03/2004, 18h03

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