firefox下style.top/style.left的兼容问题

浏览器的兼容问题,一直被认为是从业者的严峻考验,很多地方需要fix的…

今天就碰到一个很诡异的问题,
1, 在FireFox下getPosition方法获取的位置会比IE下多出1像素
2, 单纯的控制隐藏层显示时的位置,会发现如果只写数字定位在FireFox下无法正确显示,经过多方查询资料发现在FireFox下需要讲像素使用px结束,如下代码红色部分…

getPosition方法返回对象(元素)的位置…在此记录…

<script>
function getPosition(sender) {
    var e=sender,E=e;
    var x=e.offsetLeft;
    var y=e.offsetTop;
    while (e=e.offsetParent) {
        var P=e.parentNode;
        while (P!=(E=E.parentNode)) {
            x-=E.scrollLeft;
            y-=E.scrollTop;
        }
        x+=e.offsetLeft;
        y+=e.offsetTop;
        E=e;
    }
 return {"x":x,"y":y};
}
function imgOnClick(){
 var obj = document.getElementById('imgCompany');
 var ohidden = document.getElementById('hiddenCompanyPicture');
 var iWidth = getPosition(obj).x;
 var iHeight = getPosition(obj).y;
 var iLHeight,iLWidth;

 iLHeight = iHeight - 80;
 iLWidth = iWidth + 160;

 ohidden.style.top = iLHeight + 'px';
 ohidden.style.left = iLWidth + 'px';
 ohidden.style.display = 'inline';

}
function imgClose()
{
 var ohidden = document.getElementById('hiddenCompanyPicture');
 ohidden.style.display = 'none';
}
</script>