使用javascript获取光标位置在firefox中不起作用

使用javascript获取光标位置在firefox中不起作用,javascript,firefox,cursor,Javascript,Firefox,Cursor,我有一个类似javascript的 function getCursorPosition(e) { e = e || window.event; var cursor = {x:0, y:0}; if (e.pageX || e.pageY) { cursor.x = e.pageX; cursor.y = e.pageY; } else {

我有一个类似javascript的

function getCursorPosition(e) {
        e = e || window.event;
        var cursor = {x:0, y:0};
        if (e.pageX || e.pageY) {
            cursor.x = e.pageX;
            cursor.y = e.pageY;
        } 
        else {
            cursor.x = e.clientX + 
                (document.documentElement.scrollLeft || 
                document.body.scrollLeft) - 
                document.documentElement.clientLeft;
            cursor.y = e.clientY + 
                (document.documentElement.scrollTop || 
                document.body.scrollTop) - 
                document.documentElement.clientTop;
        }
        return cursor;
    }

document.onmouseup = function(e){
    cursor = getCursorPosition();
    alert(cursor.x + ':' + cursor.y);
};
此代码警告单击光标的X和Y位置。这在IE 7/8、Chrome/Safari、Opera 10中效果很好。但在Firefox4.0Beta1测试中,它不起作用

在谷歌上,很多网站都给了我同样的代码。但它在ff 4.0b中不起作用


这是FF4.0b的错误吗?或者有人能给我推荐另一个跨浏览器光标位置脚本吗?

您应该将事件传递给getCursorPosition方法:

document.onmouseup = function(e){
    cursor = getCursorPosition(e); //<== added the "e" argument here
    alert(cursor.x + ':' + cursor.y);
};
document.onmouseup=函数(e){

cursor=getCursorPosition(e);//或完全丢失
getCursorPosition()
并使用非常跨浏览器的jQuery:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>

<script type="text/javascript">
    function jQueryMain ()
    {
        $(document).mouseup (function (evt) {alert (evt.pageX + ':' + evt.pageY);} );
    }

    $(document).ready (jQueryMain);
</script>

函数jQueryMain()
{
$(document.mouseup(函数(evt){alert(evt.pageX+'):'+evt.pageY);});
}
$(文件).ready(jQueryMain);

在ie/opera中…您有一个全局window.event对象,这就是它在这些平台上工作的原因…请参阅: