2010-03-24 89 views
1

我剛剛遇到了clientX和clientY的一個小問題。客戶端X和客戶端Y在離開瀏覽器時的區別ie/ff

我放了一個小事件來檢測鼠標是否離開窗口並知道它退出的位置。並且出現了麻煩,使用firefox可以正常工作,但是在IE中只發送-1作爲答案。有人知道是否有辦法輕鬆解決這個問題,而不使用框架?

的代碼一點點重現:

<html> 
    <head> 
    <script type="text/javascript"> 
document.onmouseout=function(e){ 
    if (!e) var e = window.event; 
    var relTarg = e.relatedTarget || e.toElement; 
    if (!relTarg){ 
    document.getElementById('result1').innerHTML="e.clientY:"+e.clientY+" e.clientX:"+e.clientX; 
    } 
}; 
    </script> 

    </head> 
    <body> 
<div id="result1">Not Yet</div> 
    </body> 
</html> 

的結果,如果通過窗口左側我退出是:

e.clientY:302 e.clientX:-130在Firefox

e.clientY:-1 e.clientX:-1 on ie。

在此先感謝。

回答

0

嗯,無論哪種方式,不e.clientX < 0暗示光標在窗口之外?

+0

好點..... – 2010-03-24 14:09:38

+0

嗡嗡聲其實它是真的在IE中,但不是在Firefox中,例如,如果你有一個寬度爲1080px的文件,如果你通過右邊的退出窗口,e.clientX在1080px時會更勝一籌。所以你可以很容易地知道,如果你通過這種方式退出底部/頂部/左/右。 即ie你不能導致無論你在哪裏退出,輸出是-1/-1 – 2010-03-24 16:10:31

0
if(e.pageX) 
    { 
     _xmouse = e.pageX; 
     _ymouse = e.pageY; 
    } 
    else 
    { 
     if(typeof(event) == "undefined") return; 
     _xmouse = event.clientX + document.body.scrollLeft; 
     _ymouse = event.clientY + document.body.scrollTop; 
    } 

從我的項目。想想你需要什麼

+0

哼哼好像它不是我所需要的,e.page(X | Y)沒有爲ie定義。在沒有滾動條的頁面上,它與e.client(X | Y)是一樣的, – 2010-03-24 16:15:21

相關問題