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 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)
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";
- document.all["infobulle"].style.left=finalPosX+"px";
- 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";}
- else if (ns6){document.getElementById("infobulle" ).style.visibility="hidden";}
- }
- 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;
- }
- }
|
Pourtant, le plus curieux, c'est que sur la page 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
Message édité par ishanshade le 12-03-2006 à 15:15:40