Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2299 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  script bug avec IE [contourné]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

script bug avec IE [contourné]

n°733376
boulax
Inserer phrase hype en anglais
Posté le 21-05-2004 à 11:42:40  profilanswer
 

Dans la continuité de mes autres questions ... Cette page teste le fonctionnement d'une arborescence. Je souhaite dérouler le contenu d'un dossier lorsque je clique sur l'icone. Je joue sur la propriété display de la balise <div> qui suit le noeud. Cela ne fonctionne pas avec IE: des que l'on clique sur la liste (meme hors de l'image de la liste) tout s'efface sauf la racine ... Le script fonctione correctement avec mozilla.
 
voici le code de la page en question
 

Code :
  1. <html>
  2. <head>
  3. <style type="text/css">
  4. .noeudouvert
  5. {
  6. list-style-image:url("./img/folderopen.gif" );
  7. }
  8. .noeudferme
  9. {
  10. list-style-image:url("./img/folderclosed.gif" );
  11. }
  12. </style>
  13. <script language="Javascript">
  14. function openclosenode(node)
  15. {
  16. if ( document.getElementById(node).style.display == 'block' )
  17. {
  18.  document.getElementById(node).style.display = 'none';
  19.  //document.getElementById(node).class = 'noeudferme';
  20.  }
  21.  else
  22.  {
  23.   document.getElementById(node).style.display = 'block';
  24.  //document.getElementById(node).class = 'noeudouvert';
  25.  }
  26. }
  27. </script>
  28. </head>
  29. <body>
  30. <!-- arbre -->
  31. <ul class="treecontainer">
  32. <li id="elem00" onclick="openclosenode('00')" class="noeudouvert"><span class="display0">onclick</span></li>
  33. <div name="00" id="00" style="display:block" >
  34. <ul class="blocfils">
  35.  <li id="elem10" onclick="openclosenode('10')" class="noeudferme"><span class="display">onclick1</span></li>
  36.  <div name="10" id="10" style="display:none" >
  37.   <ul class="blocfils">
  38.    <li id="elem20" class="noeudferme"><span class="display">onclick4</span></li>
  39.    <li id="elem21" class="noeudferme"><span class="display">onclick5</span></li>
  40.    <li id="elem22" class="noeudferme"><span class="display">onclick6</span></li>
  41.   </ul>
  42.  </div>
  43.  <li id="elem11" class="noeudferme"><span class="display">onclick2</span></li>
  44.  <li id="elem12" class="noeudferme"><span class="display">onclick3</span></li>
  45. </ul>
  46. </div>
  47. </ul>
  48. </body>
  49. </html>


Message édité par boulax le 24-05-2004 à 09:17:52

---------------
Posté depuis des chiottes, sales. Me gusta.
mood
Publicité
Posté le 21-05-2004 à 11:42:40  profilanswer
 

n°733448
bobe
Posté le 21-05-2004 à 12:23:31  profilanswer
 

Un identifiant ne peut pas commencer par un chiffre. Il faudrait déja corriger ça.

n°733463
boulax
Inserer phrase hype en anglais
Posté le 21-05-2004 à 12:30:34  profilanswer
 

bobe a écrit :

Un identifiant ne peut pas commencer par un chiffre. Il faudrait déja corriger ça.


Ah ben tiens je l'ignorais.
 
Corrigé, sans effet. J'ai rajouté un return true aussi à la fin de la fonction JS au cas où... mais marche toujours pas avec IE.


---------------
Posté depuis des chiottes, sales. Me gusta.
n°733466
Hermes le ​Messager
Breton Quiétiste
Posté le 21-05-2004 à 12:36:19  profilanswer
 

Un ID doit toujours être défini au commencement de la page avant de pouvoir être utilisé par javascript.


Message édité par Hermes le Messager le 21-05-2004 à 12:36:35
n°733475
boulax
Inserer phrase hype en anglais
Posté le 21-05-2004 à 12:42:07  profilanswer
 

:heink: ah bon ? et comment ? ....
 
D'autant plus que la fonction javascript est appelé bien apres la fin du chargement de la page, donc je vois doublement pas de quoi tu parles.


Message édité par boulax le 21-05-2004 à 12:59:50

---------------
Posté depuis des chiottes, sales. Me gusta.
n°733512
Hermes le ​Messager
Breton Quiétiste
Posté le 21-05-2004 à 13:33:26  profilanswer
 

boulax a écrit :

:heink: ah bon ? et comment ? ....
 
D'autant plus que la fonction javascript est appelé bien apres la fin du chargement de la page, donc je vois doublement pas de quoi tu parles.


 
Ou sont défini tes id dans les css ?

n°733514
boulax
Inserer phrase hype en anglais
Posté le 21-05-2004 à 13:35:42  profilanswer
 

Hermes le Messager a écrit :

Ou sont défini tes id dans les css ?


 
Nul part, les id n'ont rien a voir avec les css, du moins ici. Ils servent uniquement a identifier l'objet au sein du script.


---------------
Posté depuis des chiottes, sales. Me gusta.
n°733517
Hermes le ​Messager
Breton Quiétiste
Posté le 21-05-2004 à 13:37:13  profilanswer
 

boulax a écrit :

Nul part, les id n'ont rien a voir avec les css, du moins ici. Ils servent uniquement a identifier l'objet au sein du script.


 
En tous cas, j'avais eu un problème similaire qui disparaissait en définissant mes ID au départ. Tu peux d'ailleurs les créer dynamiquement via javascript si tu veux.

n°733519
boulax
Inserer phrase hype en anglais
Posté le 21-05-2004 à 13:38:55  profilanswer
 

Tu pourrais me montrer comment tu fais pour définir des id au début de la page ?


---------------
Posté depuis des chiottes, sales. Me gusta.
n°733520
Hermes le ​Messager
Breton Quiétiste
Posté le 21-05-2004 à 13:40:46  profilanswer
 

boulax a écrit :

Tu pourrais me montrer comment tu fais pour définir des id au début de la page ?


 
ben :
 
dans les css :
 
#tonid {
propriété : attributs;
etc...
}
 
 :??:

mood
Publicité
Posté le 21-05-2004 à 13:40:46  profilanswer
 

n°733530
boulax
Inserer phrase hype en anglais
Posté le 21-05-2004 à 13:49:07  profilanswer
 

Je comprends pas à quoi ca sert ... C'est quoi la difference avec une classe CSS ? (cf le #..)


---------------
Posté depuis des chiottes, sales. Me gusta.
n°733539
Hermes le ​Messager
Breton Quiétiste
Posté le 21-05-2004 à 14:00:21  profilanswer
 

boulax a écrit :

Je comprends pas à quoi ca sert ... C'est quoi la difference avec une classe CSS ? (cf le #..)


 
Ben #id est unique. [:spamafote]

n°733549
boulax
Inserer phrase hype en anglais
Posté le 21-05-2004 à 14:06:07  profilanswer
 

Ouais bon bref ton truc c'est pas le bonne voie pour moi etant donné que je fait exactement le meme effet sur une autre page de la meme façon à la différence pres des listes. Donc pour essayer j'ai mis que des div avec des text-indent a la place des ul et li et miracle ca marche  :heink:


Message édité par boulax le 21-05-2004 à 14:06:30

---------------
Posté depuis des chiottes, sales. Me gusta.
n°734559
KrX
All your base are belong to us
Posté le 22-05-2004 à 11:29:38  profilanswer
 

Pour en revenir à ton script qui a un soucis sous IE, je crois que

document.getElementById(node).style.display

ne fonctionne pas sous IE; utilise un test pour determiner le browser utilisé puis :

Code :
  1. // Si Moz/Netscape 6
  2. if (document.getElementById(node).style.display == 'block')
  3. {
  4.         document.getElementById(node).style.display = 'none';
  5.         //document.getElementById(node).class = 'noeudferme';  
  6. }
  7. else
  8. {
  9.         document.getElementById(node).style.display = 'block';
  10.         //document.getElementById(node).class = 'noeudouvert';  
  11. }
  12. ...
  13. // Si IE 6
  14. if (node.style.display == 'block')
  15. {
  16.         node.style.display = 'none';
  17.         //node.class = 'noeudferme';  
  18. }
  19. else
  20. {
  21.         node.style.display = 'block';
  22.         //node.class = 'noeudouvert';  
  23. }



---------------
Antisocial, tu perds ton sang froid Tu masques ton visage en lisant ton journal Repense a toutes ces années de service Antisocial, bientôt les années de sévices Enfin le temps perdu qu'on ne rattrape plus 4Ñ 7¡ $Ø Ç!ÂL
n°734610
boulax
Inserer phrase hype en anglais
Posté le 22-05-2004 à 12:48:20  profilanswer
 

Non non ca marche bien ce script (le getElementById) c'est juste que le browser gere mal l'apparition des listes va savoir pourquoi.
 
J'ai tout résolu avec des div et des span avec des style qui faut. Je posterai un screenshot le résultat est vraiment pas mal.


---------------
Posté depuis des chiottes, sales. Me gusta.
n°734631
Hermes le ​Messager
Breton Quiétiste
Posté le 22-05-2004 à 13:20:30  profilanswer
 

KrX a écrit :

Pour en revenir à ton script qui a un soucis sous IE, je crois que

document.getElementById(node).style.display

ne fonctionne pas sous IE; utilise un test pour determiner le browser utilisé puis :
[cpp]


 
Heureusement que si, ça fonctionne.

n°734727
boulax
Inserer phrase hype en anglais
Posté le 22-05-2004 à 15:42:44  profilanswer
 

Hermes le Messager a écrit :

Heureusement que si, ça fonctionne.


 
clair [:totoz]


---------------
Posté depuis des chiottes, sales. Me gusta.
n°735548
boulax
Inserer phrase hype en anglais
Posté le 24-05-2004 à 09:17:13  profilanswer
 

Voila ce que ca donne sous ie
 
http://img18.imageshack.us/img18/6483/Image1.png


---------------
Posté depuis des chiottes, sales. Me gusta.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  script bug avec IE [contourné]

 

Sujets relatifs
Script AudioInserer des script tout fait???
lancer un script SQLexecution d un script sur un Server WEB
Executez un script sur le serveur a partir d'une page WebScript TCL pour eggdrop
comment executer un script bash via php?script Phpmynews
[Script mirc] Fonctions sockopen, sockwrite ...[PHP] Besoin d'un coup de main: générer un script anti-leech
Plus de sujets relatifs à : script bug avec IE [contourné]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR