salut à tous,
je développe un chat, et j'ai un problème: j'utilise une liste de connectés qui affiche en 'temps reel' les membres connectés. Seulement, j'utilise sur la liste de membres des infobulles, grace a un script que j'ai trouvé sur le net. L'appel des infobulles se fait par une balise div et onmouseover. Le problème, c'est que pour actualiser ma liste, j'utilise la methode xmlhttprequest, et je rafraichis avec un div également. Or, depuis que j'utilise ce rafraichissement, mon infobulle ne marche plus sous ie (sous mozilla c'est ok). La description de l'infobulle s'affiche en gros au dessus de la partie rafraichie.
Voici le code pour l'infobulle:
function affiche(action,contenu){
var voir;
var display;
if (action == "cache"){
voir = "hidden";
display = "none";
}
else {
voir = "visible";
display = "block";
}
document.getElementById("bulle").innerHTML = contenu;
function initialise() {
document.onmousemove=mousemove;
}
function mousemove(e) {
if (navigator.appName.indexOf("Explorer") > -1) {
var mouseX=event.x; var mouseY=event.y;
}
else {var mouseX=e.pageX; var mouseY=e.pageY;}
document.getElementById("bulle").style.top = mouseY+20+"px";
document.getElementById("bulle").style.left = mouseX+20+"px";
document.getElementById("bulle").style.visibility = voir;
document.getElementById("bulle").style.display = display;
}
initialise();
function cache(){
document.getElementById("bulle").style.visibility = "hidden";
}
}
et voici celui du refresh auto:
<script language="javascript" type='text/javascript'>
var xhr = null;
var n=0;
function getXhr()
{
if(window.XMLHttpRequest){xhr = new XMLHttpRequest(); }
else if(window.ActiveXObject)
{
try{
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e)
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else
{
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
}
function init()
{
loop();
}
function loop()
{
setTimeout('loop();',3000);
ShowPage();
}
function ShowPage()
{
getXhr();
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4 && xhr.status == 200)
{
document.getElementById('liste_connectes').innerHTML=xhr.responseText;
}
}
xhr.open("POST","liste_membres.php",true);
xhr.send(null);
}
</script>
<body onload="init()">
<div id="liste_connectes"></div>
</body>
dans la page liste_membres.php, j'affiche les membres connectés et je fais un lien pour leur parler. avant chaque nom je fais: <div id="bulle"></div>, et cela me permet d'afficher l'infobulle.
Auriez vous une idée de pourquoi mon infobulle ne s'affiche pas?
Bonne journée
David