Avatar billede Slettet bruger
21. maj 2008 - 17:31 Der er 6 kommentarer og
1 løsning

FireFox og mouse position

Hej

Har et problem med at finde musse positionen i firefox, har prøvet flere forskellige ting og søgt på nettet, men alt med samme resultat. Jeg har prøvet følgende:

function show(id,x,y,tf) {
    var posx = 0;
    var posy = 0;
    if (!e) var e = window.event;
    if (e.pageX || e.pageY)     {
        posx = e.pageX;
        posy = e.pageY;
    }
    else if (e.clientX || e.clientY)     {
        posx = e.clientX + document.body.scrollLeft
            + document.documentElement.scrollLeft;
        posy = e.clientY + document.body.scrollTop
            + document.documentElement.scrollTop;
    }
    if (tf == true) {
        id.style.display = "block"
        x = posx - 130;
        y = posy - 10;
        id.style.left = x + "px"
        id.style.top = y + "px"
    }
    if (tf == false) {
        id.style.display = "none"
    }
}

Dette virker fint i IE som mange af de andre eksempler jeg har fundet også gør, men intet virker i firefox.

I firefox får jeg fejlen: "e has no properties"

Så er der nogen der ved hvordan det gøres i firefox?

På forhånd tak.
Avatar billede roenving Novice
21. maj 2008 - 17:34 #1
function show(id,x,y,tf,e) { !-)
Avatar billede Slettet bruger
21. maj 2008 - 17:54 #2
Får samme fejl i firefox skal den ikke vide hvad e er ?
Avatar billede roenving Novice
23. maj 2008 - 14:19 #3
Gecko-maskinen sender selv et event-objekt med, hvis koden aktiveres som følge af en event på et objekt, så det burde være nok at deklarere den i funktions-definitionen !-)

-- hvis det ikke virker, må du prøve at linke til en side med problemet!o]
Avatar billede olebole Juniormester
23. maj 2008 - 16:46 #4
<ole>

Njaahhh, roenving ... der medsendes tydeligvis andre parametre, så mon ikke event handleren har en udformning, hvor event objektet eksplicit skal medsendes?  =)

- men du har helt ret i, vi bliver nødt til at se mere kode  ;o)

/mvh
</bole>
Avatar billede Slettet bruger
25. maj 2008 - 21:46 #5
Avatar billede w13 Novice
27. maj 2008 - 10:25 #6
Dette skulle virke i begge:

<html>
<head>
<script type="text/javascript" language="javascript">
var posx=posy=0;
if(!document.all)document.captureEvents(Event.MOUSEMOVE);document.onmousemove=getMouseXY;function getMouseXY(e){if(document.all){posx=event.clientX+document.body.scrollLeft;posy=event.clientY+document.body.scrollTop}else{posx=e.pageX;posy=e.pageY}}

function show(id,tf){
    id=document.getElementById(id);
    if(tf){
        id.style.display="block";
        id.style.left=posx+130+"px";
        id.style.top=posy+10+"px"
    }else{
        id.style.display="none"
    }
}
</script>
</head>
<body>

      <table>
            <tr>
                <td>
                    <a href="" onmouseover="show('image1',true)" onmouseout="show('image1',false)">Vis billede</a>
                    <img src="lambo_logo_1.jpg" style="position:absolute;display:none" id="image1">
                </td>
            </tr>
        </table>
</body>
</html>
Avatar billede Slettet bruger
28. maj 2008 - 14:43 #7
Tak det virkede
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester