|
Publicité | ||||||||||||||||||||||
|
|
#1 |
|
Nouveau membre du Club
![]() Date d'inscription: mars 2005
Messages: 64
|
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 :
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 |
![]() Date d'inscription: juin 2008
Localisation: Bordeaux
Âge: 39
Messages: 6 719
|
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 !
|
|
|
|
|
#3 | |
![]() Date d'inscription: mars 2002
Localisation: Au coeur de la Nébuleuse de la Rainette
Messages: 22 677
|
les paramètres regionnaux son ils identiques sur tous les postes ???
separateur decimal, charset par defaut ... ? les versions des navigateurs son identiques ?
__________________
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts ) Citation:
Votre post a trouvé une réponse qui vous satisfait ? Alors n'oubliez pas le Tag ![]() réalisations web (developpeur et/ou infographiste et/ou chef de projet: www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.sistac-alizay.fr | www.planet-languages.com | www.acoustishop.fr | www.litt.fr |
|
|
|
|
|
#4 |
|
Nouveau membre du Club
![]() Date d'inscription: mars 2005
Messages: 64
|
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 | ||
![]() Date d'inscription: janvier 2007
Messages: 7 505
|
Bonjour,
Citation:
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:
A+ |
||
|
|
|
|
|
#6 |
|
Nouveau membre du Club
![]() Date d'inscription: mars 2005
Messages: 64
|
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 | |
![]() Date d'inscription: mars 2002
Localisation: Au coeur de la Nébuleuse de la Rainette
Messages: 22 677
|
quel est le default charset du serveur ?
__________________
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts ) Citation:
Votre post a trouvé une réponse qui vous satisfait ? Alors n'oubliez pas le Tag ![]() réalisations web (developpeur et/ou infographiste et/ou chef de projet: www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.sistac-alizay.fr | www.planet-languages.com | www.acoustishop.fr | www.litt.fr |
|
|
|
|
|
#8 |
|
Nouveau membre du Club
![]() Date d'inscription: mars 2005
Messages: 64
|
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 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 |
|
Nouveau membre du Club
![]() Date d'inscription: mars 2005
Messages: 64
|
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
|
|
|
|
|
|
![]() |
||
[Différences entre deux postes] Initialisation d'un élément
|
||
| Outils de la discussion | |
|
|