javascript – 确定窗口焦点事件上的鼠标位置

我已经将焦点监听器附加到窗口(使用原型语法):

Event.observe( window, 'focus', focusCb.bindAsEventListener( this ) );

我想确定窗口聚焦时的鼠标位置.不幸的是,在我的focusCb方法中,我似乎无法访问pageX,pageY,clientX或clientY.

使用quirksmode代码:

function doSomething(e) {
    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;
    }

    // posx and posy contain the mouse position relative to the document
    // Do something with this information
}

我总是得0,0.

我认为焦点事件会有鼠标位置信息.

>为什么焦点事件没有这些信息?
>更重要的是,当窗口聚焦时,我应该如何获得鼠标位置?

最佳答案 IE在
event object中有clientX和clientY;虽然它可能是唯一的一个.

是的,这看起来非常可怕.请参阅有关鼠标位置的this page部分.我认为他做了很彻底的检查工作.

好的,我看到你实际上已经在使用他的剧本了.叹.

点赞