]> source.dussan.org Git - jquery.git/commitdiff
Landing pull request 352. Slightly improved defaultDisplay() and Throbber of Doom... 385/head
authorMathias Bynens <mathias@qiwi.be>
Fri, 20 May 2011 15:22:52 +0000 (11:22 -0400)
committertimmywil <tim.willison@thisismedium.com>
Fri, 20 May 2011 15:22:52 +0000 (11:22 -0400)
More Details:
 - https://github.com/jquery/jquery/pull/352
 - http://bugs.jquery.com/ticket/8994

src/effects.js

index e179c3e3c1feeb0552341ecfd37bd70ee754b177..2249627738b96240a07842aa5ee023829cb5b21a 100644 (file)
@@ -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( "<!doctype><html><body></body></html>" );
+                               iframeDoc.write( ( document.compatMode === "CSS1Compat" ? "<!doctype html>" : "" ) + "<html><body>" );
+                               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