problème de compatibilité Mozilla....

problème de compatibilité Mozilla.... - HTML/CSS - Programmation

Marsh Posté le 18-05-2006 à 11:53:52    

Edit:  pour le pb de compatibilité, voir le code dans les posts ci-dessous
 
 
 
comment accède-t-on au parent d'un objet pour firefox?
 
.parentElement fonctionne pour IE mais pas pour firefox semble-t-il..
 
je ne sais pas où trouver l'info  
(décidemment dès qu'il ne s'agit pas de IE, je ne sais où trouver les infos.. je n'ai rien vu sous DOM Inspector qui puisse me renseigner ou alors je ne sais pas l'utiliser  :??: )


Message édité par namerh le 18-05-2006 à 13:59:51
Reply

Marsh Posté le 18-05-2006 à 11:53:52   

Reply

Marsh Posté le 18-05-2006 à 11:57:04    

sous google j'ai trouvé un truc: il serait question de parentNode
je vais tester..
 
P.S. cette fois concernant Netscape, j'ai trouvé sous google en moins de 3H de recherche mais ça reste l'exception.. je me demande où il faut chercher sinon


Message édité par namerh le 18-05-2006 à 11:58:43
Reply

Marsh Posté le 18-05-2006 à 12:02:38    

Reply

Marsh Posté le 18-05-2006 à 12:14:00    

merci pour les liens, j'ai déja commencé à me documenter sur ces sites depuis qques jours.. c'est très instructif..
mais il faut lire toute la doc, autrement dit quand tu as besoin de faire une recherche sur un mot clé ou connaitre les propriétés d'un objet donnés, comment fait-on  :??:

 

Reply

Marsh Posté le 18-05-2006 à 12:17:36    

anapajari a écrit :

et c'est bien parentNode qu'il faut utiliser.


mon code ne marche pourtant pas sous netscape.. donc je vais détailler:
 

Code :
  1. function mafonction(e)
  2. {
  3.     var targ;
  4.     if (e.srcElement.parentElement) targ=e.srcElement.parentElement;
  5.     else if (e.target.parentNode) targ=e.target.parentNode;
  6.     targ.style.visibility = "hidden";
  7. }


 


Message édité par namerh le 18-05-2006 à 13:57:09
Reply

Marsh Posté le 18-05-2006 à 12:21:05    

qu'essaye tu de faire exactement :???:

Reply

Marsh Posté le 18-05-2006 à 12:31:40    

quelle importance? ça serait un peu long à décrire j'ai juste isolé le bout de code concerné..
il est efficace sous IE mais pas sous Netscape..
 
je connais bien un moyen de faire autrement mais en ajoutant pas mal de code car étant donné que cette fonction sera appelée en de nbreuses circonstances suite à des evenements se produisant sur un nombre important d'éléments différents, je n'ai pas du tout envie de passer par la récupération des "id" ça compliquerait le code pour rien.


Message édité par namerh le 18-05-2006 à 12:32:03
Reply

Marsh Posté le 18-05-2006 à 12:52:16    

anapajari a écrit :

qu'essaye tu de faire exactement :???:


ah ok je comprends pourquoi tu poses cette question:
 
en fait le problème ne vient pas du parentNode (voir le code test ci-dessous qui fonctionne très bien)

Code :
  1. <body>
  2.  texte dans body
  3.  <div id="1">
  4.   texte dans div_id1
  5.   <div id="2">
  6.    texte dans div_id2
  7.    <div id="3" onmouseover=alert(event.target.parentNode.id)>
  8.     texte dans div_id3
  9.    </div>
  10.   </div>
  11.  </div>
  12. </body>


donc le problème vient de l'accès au style?


Message édité par namerh le 18-05-2006 à 13:56:33
Reply

Marsh Posté le 18-05-2006 à 13:25:54    

c'est à dire que sans code et sans savoir ce que tu veux faire s'pas facile de t'aider [:mlc]

Reply

Marsh Posté le 18-05-2006 à 13:44:23    

voila j'ai testé le code ci-dessous qui fonctionne nickel sous IE et pas sous firefox

Code :
  1. <body>
  2.  <script>
  3.   function test(e){
  4.    var source = (e.srcElement.parentElement) ? e.srcElement.parentElement:e.target.parentNode;
  5.    source.style.visibility = "hidden";
  6.   }
  7.  </script>
  8.  texte dans body
  9.  <div id="1">texte dans div_id1
  10.   <div id="2">texte dans div_id2
  11.    <div id="3" onmouseover="test(event)" >texte dans div_id3</div>
  12.   </div>
  13.  </div>
  14. </body>


sachant que le code du post précédent fonctionne, il est clair que le problème se situe au niveau du style.visibility mais pourquoi???

Message cité 1 fois
Message édité par namerh le 18-05-2006 à 13:55:38
Reply

Marsh Posté le 18-05-2006 à 13:44:23   

Reply

Marsh Posté le 18-05-2006 à 14:14:41    

namerh a écrit :


sachant que le code du post précédent fonctionne, il est clair que le problème se situe au niveau du style.visibility mais pourquoi???


Sachant que si tu ouvrais la console JS de FF tu aurais le message suivant Erreur :  

Citation :

e.srcElement has no properties
Fichier source : http://XXX/test.html
Ligne : 11


Il est clair que le problème n'est pas au niveau du style...
 
Tiens avec ça ça marche:

Code :
  1. if (e.srcElement != undefined){
  2.    targ=e.srcElement;
  3. } else if (e.target != undefined){
  4.   targ=e.target;
  5. }
  6. targ.parentNode.style.visibility = "hidden";


Message édité par anapajari le 18-05-2006 à 14:15:16
Reply

Marsh Posté le 18-05-2006 à 14:19:39    

ah le piège!  ok thanks!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed