Problème script javascript

Fermé
charly59 - 2 juin 2008 à 20:12
rvbreiz Messages postés 2 Date d'inscription lundi 28 juillet 2008 Statut Membre Dernière intervention 28 juillet 2008 - 28 juil. 2008 à 16:15
Bonjour,
alors voila, j'ai un script qui est censé afficher une bulle au survol d'un mot, problème, il affiche rien (ou je soupçonne plus en dehors du cadre du navigateur car quand je rappelle cette même fonction un peu plus bas, la bulle est bien affichée, mais tout en haut à gauche du de la fenêtre.

Voila mon script :
	<script language='javascript' type="text/javascript">
		var IB=new Object;
		var posX=0;posY=0;
		var xOffset=10;yOffset=10;
		function AffBulle(texte)
		{
			contenu="<table border=0 cellspacing=0 cellpadding="+IB.NbPixel+"><tr bgcolor='"+IB.ColContour+"'><td><TABLE border=0 cellpadding=2 cellspacing=0 bgcolor='"+IB.ColFond+"'><tr><td><font size='-1' face='arial' color='"+IB.ColTexte+"'>"+texte+"</font></td></tr></table></td></tr></table>";
			var finalPosX=posX-xOffset;
			if (finalPosX<0) finalPosX=0;
			if (document.layers) 
			{
				document.layers["bulle"].document.write(contenu);
				document.layers["bulle"].document.close();
				document.layers["bulle"].top=posY+yOffset;
				document.layers["bulle"].left=finalPosX;
				document.layers["bulle"].visibility="show";
			}
			if (document.all) 
			{
			//var f=window.event;
			//doc=document.body.scrollTop;
				bulle.innerHTML=contenu;
				document.all["bulle"].style.top=posY+yOffset;
				document.all["bulle"].style.left=finalPosX;//f.x-xOffset;
				document.all["bulle"].style.visibility="visible";
			}
			else if (document.getElementById) 
			{
				document.getElementById("bulle").innerHTML=contenu;
				document.getElementById("bulle").style.top=posY+yOffset;
				document.getElementById("bulle").style.left=finalPosX;
				document.getElementById("bulle").style.visibility="visible";
			}
		}
		function getMousePos(e) 
		{
			if (document.all) 
			{
				posX=event.x+document.body.scrollLeft;
				posY=event.y+document.body.scrollTop;
			}
			else 
			{
				posX=e.pageX;
				posY=e.pageY;
			}
		}
		function HideBulle() 
		{
			if (document.layers) {document.layers["bulle"].visibility="hide";}
			if (document.all) {document.all["bulle"].style.visibility="hidden";}
			else if (document.getElementById){document.getElementById("bulle").style.visibility="hidden";}
		}
		
		function InitBulle(ColTexte,ColFond,ColContour,NbPixel) 
		{
			IB.ColTexte=ColTexte;IB.ColFond=ColFond;IB.ColContour=ColContour;IB.NbPixel=NbPixel;
			if (document.layers) 
			{
				window.captureEvents(Event.MOUSEMOVE);window.onMouseMove=getMousePos;
				document.write("<layer name='bulle' top=0 left=0 visibility='hide'></layer>");
			}
			if (document.all) 
			{
				document.write("<div id='bulle' style='position:absolute;top:0;left:0;visibility:hidden'></div>");
				document.onmousemove=getMousePos;
			}
			else if (document.getElementById) 
			{
				document.onmousemove=getMousePos;
				document.write("<div id='bulle' style='position:absolute;top:0;left:0;visibility:hidden'></div>");
			}
		}
	</script>


Si quelqu'un a une idée de ce qui ne vas pas ce serait très sympa de me l'indiquer !

Merci d'avance
A voir également:

2 réponses

après une petite modification j'ai eu l'assurance que le texte s'affichait bien en haut à gauche du navigateur, mais uniquement dans firefox !
je n'ai aucun problème de fonctionnement dans Internet explorer !

Donc si quelqu'un a une idée de modif à apporter pour que ça fonctionne correctement dans firefox...
merci d'avance !
0
rvbreiz Messages postés 2 Date d'inscription lundi 28 juillet 2008 Statut Membre Dernière intervention 28 juillet 2008
28 juil. 2008 à 16:15
script un peu modifié et simplifié

<html>

<head>
<style>
.bulle {
color: #025DB3;
//font-weight:bold;
}
</style>
<script language='javascript' type="text/javascript">
var w3c =(document.getElementById)? true: false;
var IE = (document.all) ? true : false;
var ie5=(w3c && document.all)? true : false;
var mx,my;
var IB=new Object;

var xOffset=15;yOffset=45;

function AffBulle(texte)
{
//getMousePos();

contenu="<table border=0 cellspacing=0 cellpadding="+IB.NbPixel+"><tr bgcolor='"+IB.ColContour+"'><td><TABLE border=0 cellpadding=2 cellspacing=0 bgcolor='"+IB.ColFond+"'><tr><td><font size='-1' face='arial' color='"+IB.ColTexte+"'>"+texte+"</font></td></tr></table></td></tr></table>";

var finalPosX=mx + xOffset;
if (finalPosX<0) finalPosX=0;
var finalPosY=my - yOffset;
if (finalPosY<0) finalPosY=30;

document.getElementById("bulle").innerHTML=contenu;
document.getElementById("bulle").style.top=finalPosY;
document.getElementById("bulle").style.left=finalPosX;
document.getElementById("bulle").style.visibility="visible";

}
function getMousePos()
{
alert(mx + " " + my);
}
function HideBulle()
{
document.getElementById("bulle").style.visibility="hidden";
}
function InitBulle(ColTexte,ColFond,ColContour,NbPixel)
{
IB.ColTexte = ColTexte;
IB.ColFond = ColFond;
IB.ColContour = ColContour;
IB.NbPixel = NbPixel;

}

function trackmouse(evt){
mx=(ie5)?event.clientX+document.body.scrollLeft:evt.pageX;
my=(ie5)?event.clientY+document.body.scrollTop:evt.pageY;
}
if(w3c){
document.onmousemove=trackmouse;
}

</script>

</head>

<body onLoad="InitBulle('blue','yellow','red',2)">

<div id='bulle' style='position:absolute;top:0;left:0;visibility:hidden'>-</div>


<span class="bulle" onMouseOut="HideBulle()" onMouseOver="AffBulle('texte affiché')"> kjjkkkjjkm</span>
</body>
0