Fix #12534. Don't die on browsers lacking getBoundingClientRect.

This commit is contained in:
Dave Methvin
2012-09-13 18:47:07 -04:00
parent 74cdd78497
commit b0a352bfa7
2 changed files with 11 additions and 2 deletions

View File

@@ -23,8 +23,8 @@ jQuery.fn.offset = function( options ) {
docElem = doc.documentElement;
// Make sure we're not dealing with a disconnected DOM node
if ( !jQuery.contains( docElem, elem ) ) {
// Make sure we have the API and we're it's not a disconnected DOM node
if ( typeof elem.getBoundingClientRect === "undefined" || !jQuery.contains( docElem, elem ) ) {
return { top: 0, left: 0 };
}

View File

@@ -15,6 +15,15 @@ test("empty set", function() {
strictEqual( jQuery().position(), undefined, "position() returns undefined for empty set (#11962)" );
});
test("object without getBoundingClientRect", function() {
expect(2);
// Simulates a browser without gBCR on elements, we just want to return 0,0
var result = jQuery({ ownerDocument: document }).offset();
equal( result.top, 0, "Check top" );
equal( result.left, 0, "Check left" );
});
test("disconnected node", function() {
expect(2);