if ( "getBoundingClientRect" in document.documentElement ) {
jQuery.fn.offset = function( options ) {
- var elem = this[0];
+ var elem = this[0], box;
if ( options ) {
return this.each(function( i ) {
return jQuery.offset.bodyOffset( elem );
}
- var box = elem.getBoundingClientRect(),
- doc = elem.ownerDocument,
+ try {
+ box = elem.getBoundingClientRect();
+
+ } catch(e) {
+ box = { top: elem.offsetTop, left: elem.offsetLeft };
+ }
+
+ var doc = elem.ownerDocument,
body = doc.body,
docElem = doc.documentElement,
win = getWindow(doc),
module("offset");
+test("disconnected node", function() {
+ expect(2);
+
+ var result = jQuery( document.createElement("div") ).offset();
+
+ equals( result.top, 0, "Check top" );
+ equals( result.left, 0, "Check left" );
+});
+
var supportsScroll = false;
testoffset("absolute"/* in iframe */, function($, iframe) {