• Visitors can check out the Forum FAQ by clicking this link. You have to register before you can post: click the REGISTER link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. View our Forum Privacy Policy.
  • 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

Collapse
X
  •  
  • Filter
  • Time
  • Show
Clear All
new posts

    Javascript - Get element position in IE6

    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?

    #2
    use posTop and posLeft in ie??document.all.ELEMENT.style.posLeft/posTop

    Comment


      #3
      re

      cheers mate, I still get 0 with IE though.

      Comment


        #4
        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.

        Comment


          #5
          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..

          Comment

          Working...
          X