在ie / ff上退出浏览器时clientX和clientY的差异

时间:2010-03-24 01:25:53

标签: javascript mouseout

我刚遇到clientX和clientY的一个小问题。

我放了一个小事件来检测鼠标是否离开窗户并知道它何时退出。有麻烦,它与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:-1000 on firefox

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

提前致谢。

2 个答案:

答案 0 :(得分:0)

嗯,不管怎样,e.clientX&lt; 0表示光标在窗口外?

答案 1 :(得分: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;
    }

来自我的项目。认为这就是你需要的东西