diff --git a/src/support.js b/src/support.js index 2d9107ac9c..da5fec8ff2 100644 --- a/src/support.js +++ b/src/support.js @@ -184,28 +184,27 @@ jQuery.support = (function() { fragment.removeChild( div ); // Null elements to avoid leaks in IE - fragment = select = opt = body = marginDiv = div = input = null; + fragment = select = opt = marginDiv = div = input = null; - // Run fixed position tests at doc ready to avoid a crash - // related to the invisible body in IE8 + // Run tests that need a body at doc ready jQuery(function() { var container, outer, inner, table, td, offsetSupport, - conMarginTop = 1, - ptlm = "position:absolute;top:0;left:0;width:1px;height:1px;margin:0;", - vb = "visibility:hidden;border:0;", - style = "style='" + ptlm + "border:5px solid #000;padding:0;'", - html = "
" + - "" + - "
"; - - // Reconstruct a container - body = document.getElementsByTagName("body")[0]; + conMarginTop, ptlm, vb, style, html, + body = document.getElementsByTagName("body")[0]; + if ( !body ) { // Return for frameset docs that don't have a body - // These tests cannot be done return; } + conMarginTop = 1; + ptlm = "position:absolute;top:0;left:0;width:1px;height:1px;margin:0;"; + vb = "visibility:hidden;border:0;"; + style = "style='" + ptlm + "border:5px solid #000;padding:0;'"; + html = "
" + + "" + + "
"; + container = document.createElement("div"); container.style.cssText = vb + "width:0;height:0;position:static;top:0;margin-top:" + conMarginTop + "px"; body.insertBefore( container, body.firstChild ); diff --git a/test/unit/support.js b/test/unit/support.js index 8352ad5e33..b714a1cec8 100644 --- a/test/unit/support.js +++ b/test/unit/support.js @@ -50,7 +50,7 @@ supportIFrameTest( "body background is not lost if set prior to loading jQuery ( for ( i in support ) { if ( !( i in jQuery.support ) ) { passed = false; - strictEqual( src[ i ], dest[ i ], "Unexpected property: " + i ); + strictEqual( jQuery.support[ i ], support[ i ], "Unexpected property: " + i ); } } ok( passed, "Same support properties" );