Ajax et firefox

[Résolu]
Signaler
Messages postés
17
Date d'inscription
jeudi 21 septembre 2006
Statut
Membre
Dernière intervention
2 avril 2009
-
Messages postés
17
Date d'inscription
jeudi 21 septembre 2006
Statut
Membre
Dernière intervention
2 avril 2009
-
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 :

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 :
[index.php?page=profil.php&profil=<?php echo $donneesprof['id_profil'] ?>' <?php echo $pseudo_d ;???>]


Merci.

6 réponses

Messages postés
17
Date d'inscription
jeudi 21 septembre 2006
Statut
Membre
Dernière intervention
2 avril 2009

J'ai trouvé : FreeTextBox.
Messages postés
17
Date d'inscription
jeudi 21 septembre 2006
Statut
Membre
Dernière intervention
2 avril 2009

Heuu. Il y a moyen d'éditer?
Messages postés
17
Date d'inscription
jeudi 21 septembre 2006
Statut
Membre
Dernière intervention
2 avril 2009

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 :
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 { // Modif proposé par TeDeum, merci à lui
if(document.documentElement.clientWidth>0) {
GetId("profil_survol").style.left=20+event.x+document.documentElement.scrollLeft+"px";
GetId("profil_survol").style.top=10+event.y+document.documentElement.scrollTop+"px";
}
else {
GetId("profil_survol").style.left=20+event.x+document.body.scrollLeft+"px";
GetId("profil_survol").style.top=10+event.y+document.body.scrollTop+"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;
i=true;
}
}

function changeProfil(id_profil){
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 :
[index.php?page=profil.php&profil=<?php echo $donneesprof['id_profil'] ?>' <?php echo $pseudo_d ;???>]



Merci
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
bonjour,
affiche ta source dans un éditeur de texte pas ton produit habituel
tu pourra copier coller correctement, car là c'est illisible
néanmoins :
>> Le code ci-dessous ne fonctionne pas sous firefox et moyennement sous Opera. Il arrive même qu'il buggue sous IE.
certes, certes.. mais déjà quand est appelée la function changeProfil(id_profil) ?

CordialementBul[mon Site][M'écrire], <!--
Messages postés
17
Date d'inscription
jeudi 21 septembre 2006
Statut
Membre
Dernière intervention
2 avril 2009

Bonjour Bultez,

Ma soure vient d'un copier colelr de mon PSPAD et de wordpad pour la seconde...opéra doit faire des caprices.
Sinon j'ai résolu mon probléme, en passant par la bibliothéque Jquery,ce qui d'une part est plus rapide et d'autre part est compatible avec mes navigateurs précédemment cités.

Encore merci de t'être attardé sur ce post trés illisible .

Bonne journée.
Messages postés
17
Date d'inscription
jeudi 21 septembre 2006
Statut
Membre
Dernière intervention
2 avril 2009

Juste un petit HS, comment sait il comment avoir une text-box Word comme sur ce site SVP?