From: Mathias Bynens Date: Fri, 20 May 2011 15:22:52 +0000 (-0400) Subject: Landing pull request 352. Slightly improved defaultDisplay() and Throbber of Doom... X-Git-Tag: 1.6.2rc1~27 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=refs%2Fpull%2F385%2Fhead;p=jquery.git Landing pull request 352. Slightly improved defaultDisplay() and Throbber of Doom. Fixes #8994. More Details: - https://github.com/jquery/jquery/pull/352 - http://bugs.jquery.com/ticket/8994 --- diff --git a/src/effects.js b/src/effects.js index e179c3e3c..224962773 100644 --- a/src/effects.js +++ b/src/effects.js @@ -574,7 +574,8 @@ function defaultDisplay( nodeName ) { if ( !elemdisplay[ nodeName ] ) { - var elem = jQuery( "<" + nodeName + ">" ).appendTo( "body" ), + var body = document.body, + elem = jQuery( "<" + nodeName + ">" ).appendTo( body ), display = elem.css( "display" ); elem.remove(); @@ -588,14 +589,15 @@ function defaultDisplay( nodeName ) { iframe.frameBorder = iframe.width = iframe.height = 0; } - document.body.appendChild( iframe ); + body.appendChild( iframe ); // Create a cacheable copy of the iframe document on first call. - // IE and Opera will allow us to reuse the iframeDoc without re-writing the fake html - // document to it, Webkit & Firefox won't allow reusing the iframe document + // IE and Opera will allow us to reuse the iframeDoc without re-writing the fake HTML + // document to it; WebKit & Firefox won't allow reusing the iframe document. if ( !iframeDoc || !iframe.createElement ) { iframeDoc = ( iframe.contentWindow || iframe.contentDocument ).document; - iframeDoc.write( "" ); + iframeDoc.write( ( document.compatMode === "CSS1Compat" ? "" : "" ) + "" ); + iframeDoc.close(); } elem = iframeDoc.createElement( nodeName ); @@ -604,7 +606,7 @@ function defaultDisplay( nodeName ) { display = jQuery.css( elem, "display" ); - document.body.removeChild( iframe ); + body.removeChild( iframe ); } // Store the correct default display