Compatibilité ie sur le onmouseover

spix2rocker Messages postés 5 Date d'inscription jeudi 5 mars 2009 Statut Membre Dernière intervention 2 avril 2009 - 2 avril 2009 à 15:15
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 - 3 avril 2009 à 14:37
Bonjour à tous,

je suis toute nouvelle.
j'ai un soucis sur une page javascript. J'ai mis une carte de france en images. Le but est de placer des points de différents sites sur la carte de façon dynamique. Quand on va sur un de spoints, au onmouse, y a un div qui s'ouvre avec les coordonnées, tel, email du site en question.
Ca marche nikel chrome sous mozilla.
Sous ie il m'affiche des petites barres et le onmouse ne fonctionne pas.
Est ce que quuelqu'un peut m'éclairer.
Après avoir lu de la doc, j'ai vu que le pb pouvait venir du related target. Voici l'extrait de code ou je pense qu'il y a peut etre l'erreur.

implantation.prototype.change=function(e)
{
    var t=e.relatedTarget;
    while (t!=this && t.nodeName!='BODY') t=t.parentNode;

    if (t!=this)
    {
        if (this.className=='sites_btn')
        {
            this.innerHTML=this.parent.texte_fic;
            this.className='sites_fic';
        }
        else
        {
            this.innerHTML=this.parent.texte_btn;
            this.className='sites_btn';
        }

        this.parent.fade(0.4);
    }
}

Merci bcp à vous

1 réponse

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
3 avril 2009 à 14:37
Bonjour,
ta fonction n'est effectivement pas
compatible IExplorer, à cela une bonne raison,
l'appel de ta fonction fait appel à un paramètre e qui n'est pas passé par IExplorer, qui gére un événement global connu sous
le nom de event.
En conséquence il te faut
tester la valeur du paramètre et faire en fonction
exemple :
function Test( e_){
  if( e_){

    alert( "FireFox"];
  else
    alert( "IExplorer"];
}

de plus le pendant pour IExplorer de relatedTarget est fromElement, donc il te faut faire en fonction de.

exemple :
function Test(
e_){
  var Obj = null;
  if( e_)
    Obj = e_.relatedTarget;

  else
    Obj = event.fromElement;
  alert( Obj.tagName);
}

juste une question
pourquoi ne pas utiliser target pour FireFox et srcElement pour IExplorer qui te donnes directement l'élément auquel
l'évènement a été envoyé.
;O)
0
Rejoignez-nous