Bonjour,

Le code ci-dessous ne fonctionne pas sous firefox et moyennement sous Opera. Il arrive même qu'il buggue sous IE.

J'aimerais donc savoir si quelqu'un pouvait m'aider à l'améliorer afin que celui soit supporté de maniére optimale par au moins ces 3 navigateurs.

Le but de ce code est d'afficher à coté du curseur, le profil de la personne que l'utilisateur survole.

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
 
function GetId(id)
{
  return document.getElementById(id);
}
 
var i=false; // La variable i nous dit si le profil est visible ou non
 
function move(e) {
  if(i) {  // Si le profil est visible, on calcul en temps reel sa position ideale
    if (navigator.appName!="Microsoft Internet Explorer") { // Si on est pas sous IE
      GetId("profil_survol").style.left=e.pageX + 5+"px";
      GetId("profil_survol").style.top=e.pageY + 10 +"px";
    }
    else { 
      if(document.documentElement.clientWidth>0) {
        GetId("profil_survol").style.left=event.x+document.documentElement.scrollLeft+5+"px";
        GetId("profil_survol").style.top=event.y+document.documentElement.scrollTop+10+"px";
      } 
      else {
        GetId("profil_survol").style.left=event.x+document.body.scrollLeft+5+"px";
        GetId("profil_survol").style.top=event.y+document.body.scrollTop+10+"px"; 
      }
    }
  }
}
 
function montre(text) {
  if(i==false) {
  GetId("profil_survol").style.visibility="visible"; // Si il est cacher (la verif n'est qu'une securité) on le rend visible.
  GetId("profil_survol").innerHTML = text; // on copie notre texte dans l'élément html
  i=true;
  }
}
 
function changeProfil(id_profil){
  if (id_profil==0){
    document.getElementById("profil_survol").innerHTML = "";
  }
  else{
    xhr = new XMLHttpRequest();
    xhr.open("get", "http://dunksession.free.fr/test.php?id_dunkeur=" + id_profil, false);
    xhr.send(null);
    montre(xhr.responseText);
  }
}
 
function cache() {
  if(i==true) {
    GetId("profil_survol").style.visibility="hidden"; // Si le profil est visible on la cache
    i=false;
  }
}
document.onmousemove=move; // dès que la souris bouge, on appelle la fonction move pour mettre à jour la position du profil.
Coté HTML cela donne ça
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
<a href="index.php?page=profil.php&profil=<?php echo $donneesprof['id_profil']  ?>'" onmouseover="changeProfil(<?php echo $donneesprof['id_profil']  ?>);" onmouseout="cache();"><?php echo $pseudo_d ;?></a><br />
      <div id="profil_survol"></div>
Merci.