diff --git a/src/dimensions.js b/src/dimensions.js index 172df647d..dc7b4ceb4 100644 --- a/src/dimensions.js +++ b/src/dimensions.js @@ -24,7 +24,7 @@ jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { doc = elem.documentElement; // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], whichever is greatest - // unfortunately, this causes bug #3838 in IE6 only, but there is currently no good, small way to fix it. + // unfortunately, this causes bug #3838 in IE6/8 only, but there is currently no good, small way to fix it. return Math.max( elem.body[ scrollProp ], doc[ scrollProp ], elem.body[ offsetProp ], doc[ offsetProp ], diff --git a/test/unit/dimensions.js b/test/unit/dimensions.js index ed065f3c7..a7463ff28 100644 --- a/test/unit/dimensions.js +++ b/test/unit/dimensions.js @@ -415,10 +415,16 @@ test("setters with and without box-sizing:border-box", function(){ }); testIframe( "dimensions/documentSmall", "window vs. small document", function( jQuery, window, document ) { - expect(2); + // this test is practically tautological, but there is a bug in IE8 + // with no simple workaround, so this test exposes the bug and works around it + if ( document.body.offsetWidth >= document.documentElement.offsetWidth ) { + expect( 2 ); - equal( jQuery( document ).height(), jQuery( window ).height(), "document height matches window height" ); - equal( jQuery( document ).width(), jQuery( window ).width(), "document width matches window width" ); + equal( jQuery( document ).height(), jQuery( window ).height(), "document height matches window height" ); + equal( jQuery( document ).width(), jQuery( window ).width(), "document width matches window width" ); + } else { + expect( 0 ); + } }); testIframe( "dimensions/documentLarge", "window vs. large document", function( jQuery, window, document ) {