<script language="Javascript">
function getIE(e){
var t=e.offsetTop;
var l=e.offsetLeft;
var height=e.clientHeight;
while(e=e.offsetParent){
t+=e.offsetTop;
l+=e.offsetLeft;
}
alert("top="+t+"/;left="+l);
//alert("下边界为"+(parseInt(t)+height));
}
</script>
<input name=haha type=button value="按" onclick="getIE(this)">

解决方案 »

  1.   

    function getPosition(dir,el){
        var x=0,y=0;
        while(el.offsetParent){
            x+=el.offsetLeft;
            y+=el.offsetTop;
            el=el.offsetParent;
        }
        if(dir=="left"){
            return x;
        }else{
            return y;
        }
    }<a href="javascript:alert(getPosition('left',this));">按钮</a>
      

  2.   

    laochake(老茶客)的方法可以让IE直接停止反应..呵呵..有没有其他的方法啊...我用了(天外水火(我要多努力)) 可以取到值.可是好像传过去的E也出了点问题
      

  3.   

    //=====  取得对象的绝对位置 ========
    function getPosition( e )
    {
    l = e.offsetLeft;
    t = e.offsetTop;
    while( e=e.offsetParent )
    {
    l += e.offsetLeft;
    t += e.offsetTop;
    } return {left:l,top:t};
    }<input name=haha type=button value="按" onclick="alert(getPosition(this).left)">
    有什么问题?
      

  4.   

    <input type="text" id="t">
    <script language="Javascript">
    function getIE(e){
    var t=e.offsetTop;
    var l=e.offsetLeft;
    while(e=e.offsetParent){
    t+=e.offsetTop;
    l+=e.offsetLeft;
    }
    alert("top="+t+"/nleft="+l);
    }
    getIE(document.all.t);
    </script>
      

  5.   

    问题在while(e=e.offsetParent){e这个参数被重复赋值了..
    所以我只好重新定义了一个obj =e