改得有点多,主要是用了一种兼容的写法:e = window.event || e 和 e.clientX || e.pageX另外FF好象不支持releaseCapture和setCapture(本人以前从来没用过这两个方法,猜的)
就把这两个方法去掉了<html>
<head></head><body>
<button id="button1" style="position:absolute;left:300px;top:100px;weight:80px;height:80px;cursor:move">
drag here</button>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
</body>
</html><script type="text/javascript">
var left,top;
var x_0,y_0;
var isMove = false;
var thebutton = document.getElementById("button1");thebutton.onmousedown = function(e){
    e = window.event || e;
    left = parseInt(thebutton.style.left.replace(/\D*/gi,""));
    top = parseInt(thebutton.style.top.replace(/\D*/gi,""));
    x_0 = e.clientX || e.pageX;
    y_0 = e.clientY || e.pageY;
    isMove = true;
}
thebutton.onmousemove = function(e){
    e = window.event || e;
    if(isMove){
        var x_1 = e.clientX || e.pageX;
        var y_1 = e.clientY || e.pageY;
        thebutton.style.left = left + (x_1 - x_0) + "px";
        thebutton.style.top = top + (y_1 - y_0) + "px";
    }
}
thebutton.onmouseup = function(){
    isMove = false;
}
</script>

解决方案 »

  1.   

    我照网上改的,主要就是ff不支持event,搞得我糊涂了!<html>
    <head>
    <script type="text/javascript">
    var left,top;
    var x_0,y_0;
    var isMove = false;function getFocus(obj,evt)
    {
        left = parseInt(obj.style.left);
        top = parseInt(obj.style.top);
        evt = evt ? evt : (window.event ? window.event : null); 
        x_0 = evt.clientX;
        y_0 = evt.clientY;
        isMove = true;
    }
    function move(obj,evt)
    {
        evt = evt ? evt : (window.event ? window.event : null); 
        if(isMove)
        {
            var x_1 = evt.clientX;
            var y_1 = evt.clientY;
            obj.style.left = left + (x_1 - x_0) + "px";
            obj.style.top = top + (y_1 - y_0) + "px";
        }
    }
    function stopMove(obj)
    {
        isMove = false;
    }
    </script>
    </head><body>
    <button style="position:absolute;left:300px;top:100px;weight:80px;height:80px;cursor:move" onMouseDown="getFocus(this,event)" onMouseUp="stopMove(this)" onMouseMove="move(this,event)">
    drag here</button>
    </body>
    </html>
      

  2.   

    http://www.scriptlover.com/post/370