X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Foffset.js;h=b94faf37b200a612ac16626ed0cb3b53c7531fd0;hb=ea507b3e998126ae1f94f4fd1618994d645c9cc8;hp=39763ee609690aabff5880d631726b6b2f399fce;hpb=cf672a2e7a886cac5ae62f6772c6b4b43b19a2fc;p=jquery.git diff --git a/src/offset.js b/src/offset.js index 39763ee..b94faf3 100644 --- a/src/offset.js +++ b/src/offset.js @@ -23,14 +23,17 @@ if ( "getBoundingClientRect" in document.documentElement ) { try { box = elem.getBoundingClientRect(); + } catch(e) {} - } catch(e) { - box = { top: elem.offsetTop, left: elem.offsetLeft }; + var doc = elem.ownerDocument, + docElem = doc.documentElement; + + // Make sure we're not dealing with a disconnected DOM node + if ( !box || !jQuery.contains( docElem, elem ) ) { + return box || { top: 0, left: 0 }; } - var doc = elem.ownerDocument, - body = doc.body, - docElem = doc.documentElement, + var body = doc.body, win = getWindow(doc), clientTop = docElem.clientTop || body.clientTop || 0, clientLeft = docElem.clientLeft || body.clientLeft || 0,