获取控件在网页中的绝对位置

在IE和FF下能用的,获取按钮在网页中的绝对位置
<! DOCTYPE html PUBLIC  " -//W3C//DTD XHTML 1.0 Transitional//EN "   " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd " >   
< html xmlns = " http://www.w3.org/1999/xhtml " >   
< head >   
    
< title > 获取控件在网页中的绝对位置 < / title>  
< / head>  
< body >   
< div > 如果您没有看到按钮,请往下拉到滚动条。 < / div>  
< div style = " height:500px;border:1px solid #6666CC; " >   < / div>  
------------< input type = " button "  value = " 点我获取我的座标 "     
onclick
= " javascript:var pos = getCoordinate();alert('此按钮距页面左端 '+pos.x+' 像素,上端 '+pos.y+' 像素'); "   / >  
  
< script type = " text/javascript "  language = " javascript " >   
function  CPos(x, y)   
{   
    
this .x  =  x;   
    
this .y  =  y;   
}   
  
//  取得事件(通用)   
function  $EVENTObject()   
{   
    
if (window.event)  return  window.event;   
    
var  f = $EVENTObject.caller;   
    
while (f != null )   
    {   
        
var  e  =  f.arguments[ 0 ];   
        
if (e  &&  (e.constructor == MouseEvent || e.constructor == Event || e.constructor == KeyboardEvent))  return  e;   
        ff
= f.caller;   
    }   
}   
  
// 取得触发本事件的元素(通用)   
function  getElement()   
{   
    
var  _enent = $EVENTObject();    
    
if (window.event)   
    {   
        
return  _enent.srcElement;   // 是IE    
    } else {   
        
return  _enent.target;   // 是FF   
    }   
  
}   
  
// 取得 调用本方法的按钮  距离页面最上端和最左端的位置   
function  getCoordinate()   
{   
    
var  target  = getElement();   
    
var  pos  =   new  CPos(target.offsetLeft, target.offsetTop);   
       
    
var  targettarget  =  target.offsetParent;   
    
while  (target)   
    {   
        pos.x 
+=  target.offsetLeft;   
        pos.y 
+=  target.offsetTop;   
           
        targettarget 
=  target.offsetParent   
    }       
    
return  pos;   
}   
< / script>  
< / body>  
< / html>  

转自: http://elf8848.javaeye.com/blog/227557

你可能感兴趣的:(获取)