• Want to receive the latest contracting news and advice straight to your inbox? Sign up to the ContractorUK newsletter here. Every sign up will also be entered into a draw to WIN £100 Amazon vouchers!

Javascript - Get element position in IE6

  • Thread starter Thread starter reynolds
  • Start date Start date
R

reynolds

Guest
I'm trying to get the position of a table on a page..

<table id="tab">

by using :

var x = getAbsX(document.getElementById("tab"))
var y = getAbsX(document.getElementById("tab"))

which calls:

function getAbsX(elt) { return (elt.x) ? elt.x : getAbsPos(elt,"Left"); }
function getAbsY(elt) { return (elt.y) ? elt.y : getAbsPos(elt,"Top"); }

function getAbsPos(elt,which) {
iPos = 0;
while (elt != null) {
iPos += elt["offset" + which];
elt = elt.offsetParent;
}
return iPos;
}

but the bleeding thing keeps giving me 0's for both x and y in IE but works in Firefox. Can anyone help?
 
Re: re

Re: re

bleeding 'ell that look complicated

x = document.getElementById("tab").style.posLeft
y = document.getElementById("tab").style.posTop

always works for me. It does if you are defining left and top in styles anyhow.

PS No I see you aren't. Ignore above. That adding parent offset thing looks ok to me. Hmm have to try it. I suspect that you will find even when it does work it does not work very well. Used offsetHeight to get size of a box and it always overstates by about 20%, never figured why.
 
re

re

Cheers Xoggoth.
The problem was IE specific to do with the way it registers DOM objects. IE needs the page to be loaded and all brackets closed before objects could be called whereas Firefox was happy with registering an object as soon as it was defined. Bloody complicated this Javascript at times..
 

Advertisers

Back
Top