Bonjour à tous
Je fais un site internet pour la FAC sur un sujet bien précis : les mangas
Pour ce site,j'ai voulu incorporer un calendrier avec infobulle apparaissant lorsque le curseur passe sur la data contenant un évènement.
J'ai donc chopé un petit module sur le net que j'ai très vite installé.
Voila ce que ca donne [url=http://dbzishan40.free.fr/v1/. Pour les utilisateurs de Firefox, ils verront le calendrier marcher parfaitement. Pour ceux qui utilisent IE, pas d'infobulles ! Voici l'erreur que donne IE :
'document.all.infobulle.style' a la valeur Null ou n'est pas un objet. (aux lignes 30 et 60, d'apres IE en gras ici)
[code]var ie = (document.all)? true:false;
var ns4 = (document.layers)? true:false;
var ns6 = (document.getElementById)? true:false;
var IB=new Object;
var posX=0;
var posY=0;
var xOffset=20;
var yOffset=20;
function AffBulle(titre, texte, w, color1, color2)
{
//contenu="<div style=\"border: 1px solid #7f9db9; background: "+IB.ColContour+"; position: absolute; z-index: auto; display: block;\">"+titre+"</div>";IB.ColContourIB.ColFond
//IB.ColContour
contenu="<table width='"+w+"' cellspacing='0' cellpadding='"+IB.NbPixel+"' style=\"border: 1px solid "+color2+";\"><tr style='background: "+color1+";'><td> <b>"+titre+"</b></td></tr><tr style='background: "+color1+";'><td valign='top'><table style='width:100%; background: white;' cellpadding='3' cellspacing='0'><tr><td style=\"border: 1px solid "+color2+";\">"+texte+"</td></tr></table></td></tr></table> ";
var finalPosX=posX-xOffset;
if (finalPosX<0) finalPosX=0;
if (ns4)
{
document.layers["infobulle"].document.write(contenu);
document.layers["infobulle"].document.close();
document.layers["infobulle"].top=posY+yOffset+"px";
document.layers["infobulle"].left=finalPosX+"px";
document.layers["infobulle"].visibility="show";
}
if (ie)
{
infobulle.innerHTML=contenu;
document.all["infobulle"].style.top=posY+yOffset+"px";
[b]document.all["infobulle"].style.left=finalPosX+"px";[/b]
document.all["infobulle"].style.visibility="visible";
}
else if (ns6)
{
document.getElementById("infobulle").innerHTML=contenu;
document.getElementById("infobulle").style.top=posY+yOffset+"px";
document.getElementById("infobulle").style.left=finalPosX+"px";
document.getElementById("infobulle").style.visibility="visible";
}
}
function getMousePos(e)
{
if (ie)
{
posX=event.x+document.documentElement.scrollLeft;
posY=event.y+document.documentElement.scrollTop;
}
else
{
posX=e.pageX;
posY=e.pageY;
}
}
function HideBulle()
{
if (ns4) {document.layers["infobulle"].visibility="hide";}
if (ie) {document.all["infobulle"].style.visibility="hidden";}
[b]else if (ns6){document.getElementById("infobulle").style.visibility="hidden";}[/b]
}
function InitBulle(ColFond, ColContour, NbPixel)
{
IB.ColFond=ColFond;IB.ColContour=ColContour;IB.NbPixel=NbPixel;
if (ns4)
{
document.write("<layer name='infobulle' top='0' left='0' visibility='hide'></layer>");
window.captureEvents(Event.MOUSEMOVE);window.onMouseMove=getMousePos;
}
if (ie)
{
document.write("<div id='infobulle' style='position:absolute;top:0;left:0;visibility:hidden'></div>");
document.onmousemove=getMousePos;
}
//modif CL 09/2001 - NS6 : celui-ci ne supporte plus document.layers mais document.getElementById
else if (ns6)
{
document.write("<div id='infobulle' style='position:absolute;top:0;left:0;visibility:hidden;'></div>");
document.onmousemove=getMousePos;
}
}[/code]
Pourtant, le plus curieux, c'est que sur la page [url=http://dbzishan40.free.fr/v1/test/ (page appellée sur ma page v1/index.php grâce à la fonction include) avec Firefox ou IE, tout marche parfaitement.
Quelqu'un peut-il m'aider ?
Merci d'avance