hehe, war ich mit der lösung schneller, als die 1.antwort
man muss einfach abfragen, ob es die
currentStyle eigenschaft gibt... damit kann man relative und demnach doppelte angaben ausschließen, das ganze sieht dann so aus:
Code:
<HTML>
<head>
<script>
function getPageCoords (elementId) {
var element;
if (document.all)
element = document.all[elementId];
else if (document.getElementById)
element = document.getElementById(elementId);
if (element) {
var coords = {x: 0, y: 0};
do {
if(element.currentStyle)
{
if(element.currentStyle.position!='relative')
{
coords.x += element.offsetLeft;
coords.y += element.offsetTop;
}
}
else
{
coords.x += element.offsetLeft;
coords.y += element.offsetTop;
}
element = element.offsetParent;
}
while (element)
return coords;
}
else
return null;
}
function alertCoo(el)
{
var coords = getPageCoords(el);
if (coords)
alert(coords.x + ':' + coords.y);
}
</script>
</head>
<BODY id="documentBody" onload="alertCoo('a3')">
<DIV id="div1">
Placeholder text 1.
</DIV>
<DIV id="div2" style="position:relative;top:100px;left:100px;">
Placeholder text 2.
</DIV>
<DIV id="div3" style="position:absolute;top:200px;left:200px;">
<DIV id="div4" style="position:relative;top:100px;left:100px;">
Placeholder text 3.
</DIV>
</DIV>
</BODY>
</HTML>
funktioniert jetzt so im IE und FF!
p.s.: ich habe das ganze jetzt für meine zwecke getestet, sollte irgendjemand drauf kommen, dass es so nicht (immer) funktioniert, bitte nicht steinigen, sondern einfach schreiben, am besten gleich mit lösung
eigentlich hasse ich solche sachen, die für verschiedene browser geschrieben sind und nicht nach standards funktionieren...
