Pb Infobulle js seulement sur firefox

Pb Infobulle js seulement sur firefox - HTML/CSS - Programmation

Marsh Posté le 11-03-2006 à 22:25:06    

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 :
  1. var ie = (document.all)? true:false;
  2. var ns4 = (document.layers)? true:false;
  3. var ns6 = (document.getElementById)? true:false;
  4. var IB=new Object;
  5. var posX=0;
  6. var posY=0;
  7. var xOffset=20;
  8. var yOffset=20;
  9. function AffBulle(titre, texte, w, color1, color2)
  10. {
  11. //contenu="<div style=\"border: 1px solid #7f9db9; background: "+IB.ColContour+"; position: absolute; z-index: auto; display: block;\">"+titre+"</div>";IB.ColContourIB.ColFond
  12. //IB.ColContour
  13. contenu="<table width='"+w+"' cellspacing='0' cellpadding='"+IB.NbPixel+"' style=\"border: 1px solid "+color2+";\"><tr style='background: "+color1+";'><td>&nbsp;<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>&nbsp;";
  14. var finalPosX=posX-xOffset;
  15. if (finalPosX<0) finalPosX=0;
  16. if (ns4)
  17. {
  18. document.layers["infobulle"].document.write(contenu);
  19. document.layers["infobulle"].document.close();
  20. document.layers["infobulle"].top=posY+yOffset+"px";
  21. document.layers["infobulle"].left=finalPosX+"px";
  22. document.layers["infobulle"].visibility="show";
  23. }
  24. if (ie)
  25. {
  26. infobulle.innerHTML=contenu;
  27. document.all["infobulle"].style.top=posY+yOffset+"px";
  28. document.all["infobulle"].style.left=finalPosX+"px";
  29. document.all["infobulle"].style.visibility="visible";
  30. }
  31. else if (ns6)
  32. {
  33. document.getElementById("infobulle" ).innerHTML=contenu;
  34. document.getElementById("infobulle" ).style.top=posY+yOffset+"px";
  35. document.getElementById("infobulle" ).style.left=finalPosX+"px";
  36. document.getElementById("infobulle" ).style.visibility="visible";
  37. }
  38. }
  39. function getMousePos(e)
  40. {
  41. if (ie)
  42. {
  43.   posX=event.x+document.documentElement.scrollLeft;
  44.   posY=event.y+document.documentElement.scrollTop;
  45. }
  46. else
  47. {
  48.   posX=e.pageX;
  49.   posY=e.pageY;
  50. }
  51. }
  52. function HideBulle()
  53. {
  54. if (ns4) {document.layers["infobulle"].visibility="hide";}
  55. if (ie) {document.all["infobulle"].style.visibility="hidden";}
  56. else if (ns6){document.getElementById("infobulle" ).style.visibility="hidden";}
  57. }
  58. function InitBulle(ColFond, ColContour, NbPixel)
  59. {
  60. IB.ColFond=ColFond;IB.ColContour=ColContour;IB.NbPixel=NbPixel;
  61. if (ns4)
  62. {
  63.  document.write("<layer name='infobulle' top='0' left='0' visibility='hide'></layer>" );
  64.  window.captureEvents(Event.MOUSEMOVE);window.onMouseMove=getMousePos;
  65. }
  66. if (ie)
  67. {
  68.  document.write("<div id='infobulle' style='position:absolute;top:0;left:0;visibility:hidden'></div>" );
  69.  document.onmousemove=getMousePos;
  70. }
  71. //modif CL 09/2001 - NS6 : celui-ci ne supporte plus document.layers mais document.getElementById
  72. else if (ns6)
  73. {
  74.         document.write("<div id='infobulle' style='position:absolute;top:0;left:0;visibility:hidden;'></div>" );
  75.         document.onmousemove=getMousePos;
  76. }
  77. }


 
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
Reply

Marsh Posté le 11-03-2006 à 22:25:06   

Reply

Marsh Posté le 11-03-2006 à 22:43:13    

java!=javascript  :p

Reply

Marsh Posté le 12-03-2006 à 14:57:11    

Bah le calendrier est en javascript non ? Je comprends pas...
 
Personne pour m'aider ?

Reply

Marsh Posté le 12-03-2006 à 15:01:00    

ishanshade a écrit :

Bah le calendrier est en javascript non ? Je comprends pas...


oui, et il te dit que javascript et java sont deux choses différentes, autrement dit que ton post est dans la mauvaise catégorie.
tu peux modifier ça en éditant ton post. (http://forum-images.hardware.fr/themes_static/images_forum/1/edit.gif)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 12-03-2006 à 15:16:44    

D'accord merci.  
Doncvoila, maintenant qu'il est ds la bonne catégorie, y a t il quelqu'un qui aurait une idée ?

Reply

Marsh Posté le 13-03-2006 à 10:42:52    

Up...
 
Je me rends compte que c'est la fonction include qui empeche l'affichage des infobulles sur IE, car sur le lien direct de l'index du calendrier, les infobulles apparaissent
 
Personne ne sait m'aider pleaaaase !!!

Reply

Marsh Posté le 18-03-2006 à 20:20:25    

up...
help help

Reply

Marsh Posté le 18-03-2006 à 22:39:10    

Reply

Marsh Posté le 18-03-2006 à 23:24:10    

Mouais ton truc tu peux le faire en CSS...
 
Enfin...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed