FF下获得DIV内对像坐标(DIV有滚动条)..不对.找了很多方法都没解决好这个兼容问题...
看下面的DEMO:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<style type="text/css"><!--
a, a:link{text-decoration: none; color:#000000; font-size:9pt;} a:visited{text-decoration: none; color:#000000;} a:hover{text-decoration: underline; color:red;}
body, td, p, li, div, select{font-size:9pt; font-family:"宋体";}
--></style>
<script language="javascript" type="text/JavaScript">
/*FF PATH*/
if(typeof(HTMLElement)!="undefined" && !window.opera)
{
HTMLElement.prototype.contains=function(n){if(!n)return false;do if(n==this){return true;}while(n=n.parentNode){return false;}}
}//获得对像
function _g(n){return typeof(n)!="string"?n:document.getElementById(n);}function getPos1(obj){
var o,x=0,y=0
if(navigator.appName.indexOf("Microsoft")==0)
{
var xy=obj.getBoundingClientRect();
return {x:xy.left-3,y:xy.top-3}
}
if(obj.tagName==null)
return {x:obj.x,y:obj.y}
do{
o=o==null?_g(obj):o.parentNode
x+=o.offsetLeft
y+=o.offsetTop-o.scrollTop
}while(document.body.contains(o))
return {x:x,y:y}
}function test(a)
{
var xy=getPos1(a);
var _top= xy.y;
var _left= xy.x;
var o=_g('d1');
var c=_g('c1'); //o.style.left= (_left-c.offsetLeft)+'px';  o.style.top= (_top-c.offsetTop)+'px';
o.style.left= _left +'px';  o.style.top= _top +'px'; _g('b1').innerHTML='clientHeight:'+c.clientHeight+'  clientTop:'+c.clientTop;
_g('b2').innerHTML='scrollHeight:'+c.scrollHeight+'  scrollTop:'+c.scrollTop;
_g('b3').innerHTML='offsetHeight:'+c.offsetHeight+'  offsetTop:'+c.offsetTop+'  offsetLeft:'+c.offsetLeft;
_g('b4').innerHTML='xy.top'+_top+'  xy.left:'+_left;
c=o=null;
}
</script>
</head><body>
<br />以下是c1的相关数据
<div id="b1" style="border:1px #7d7d7d solid;height:20px;"></div>
<div id="b2" style="border:1px #7d7d7d solid;height:20px;"></div>
<div id="b3" style="border:1px #7d7d7d solid;height:20px;"></div>
<div id="b4" style="border:1px #7d7d7d solid;height:20px;"></div>
<br /><br />
<div id="c1" style="border:1px #7d7d7d solid;width:300px;height:200px;overflow-y:scroll;margin:6px auto;">
<p>这里是C1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>这里在FF下就获得不正确.</p>
<input type="button" id="a1" name="aq" value='我的坐标1' onclick="test(this)" />
<p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p><p>1</p>
</div>
<br /><br />
<input type="button" id="a2" name="aq" value='我的坐标2' onclick="test(this)" />
<div id="d1" style="position:absolute;z-index:100px;top:0px; left:0px;width:100px;height:80px;border:1px red solid;"></div>
</body>
</html>