function getElementPos(e)
{
var x;
var y;
var obj=e;
while(e = e.offsetParent)obj=e;
x = obj.offsetLeft;
y = obj.offsetTop;
return[x,y];
}

解决方案 »

  1.   

    while(e = e.offsetParent)
            ↓
    while(e == e.offsetParent)
      

  2.   

    function getPosition(obj) {
        var top=0;
        var left=0;
        var width=obj.offsetWidth;
        var height=obj.offsetHeight;
    while (obj.offsetParent) {
        top += obj.offsetTop;
        left += obj.offsetLeft;
        obj = obj.offsetParent;
        }
        return {"top":top,"left":left,"width":width,"height":height};
     }
      

  3.   

    我觉得楼主的方法获取的应该就是对象的绝对位置,在IE和FF下都是这个方法,如果这两个取得的值不一样,那只有一种解释:相同的页面上的相同元素在不同的浏览器中的位置是不一样的。