Bonjour.
Je continue encore et toujours ma cure de javascript et me voilà devant un nouveau problème.
Je m'explique, j'ai un bouton dans une page et je veux que quand je clique dessus il s'affiche un div en absolute qui à pour position la position du clic.
En cherchant sur le net (et aussi dans ce forum) j'ai trouvé moultes explications sur le sujet.
J'ai donc fait mes petites fonctions (et copier d'autres existantes):
Pour récupèrer la position de la souris j'ai trouvé çà :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| function localiser(e)
{
if(navigator.appName == 'Netscape')
{
document.captureEvents(Event.CLICK);
}
if(navigator.appName == 'Microsoft Internet Explorer')
{
x = event.clientX;
y = event.clientY;
}
else
{
x = e.pageX;
y = e.pageY;
}
window.mouseX=x;
window.mouseY=y;
} |
Et pour afficher mon div j'ai çà :
1 2 3 4 5 6 7 8 9 10
|
function openDetails(idLigne,chaine,x,y){
//Si le div existe je me contente de l'afficher
if(document.getElementById('details'+idLigne)>0){
document.getElementById('details'+idLigne).style.display='block';
}else{
//S'il n'existe pas je le crée à la position passée en paramètres
document.write("<div id='details"+idLigne+"' style='position:absolute;left:"+x+"px;top:"+y+"px;display:block;'>"+chaine+"</div>");
}
} |
Dans ma page je fais un
<script type='text/javascript'>document.onmousemove=localiser;</script>
pour a chaque fois récuperer les coordonnées de la souris
et sur le bouton je fais :
<input type="button" onClick="openDetails(1,'fghjdfgdfjkgh',window.mouseX,window.mouseY);" value=\"bouton1\" />
Le problème c'est que j'ai toute une page blanche qui s'affiche (beurk) avec mon texte qui semble (à 99,99%) à la bonne place (c'est déjà çà). Et en plus mon gentil navigateur qu'est firefox me marque "chargement".
Je voulais savoir comment résoudre ce petit souci.
J'ai cru voir sur le forum que le document.write ne peut être utilisé qu'à la création de la page j'ai pas tout compris, si quelqu'un pouvait m'éclairer.
Merci déjà. J'espère avoir été clair.
Partager