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
This commit is contained in:
Mathias Bynens 2011-05-20 11:22:52 -04:00 committed by timmywil
parent f82b9dddc4
commit b43910a496

14
src/effects.js vendored
View file

@ -574,7 +574,8 @@ function defaultDisplay( nodeName ) {
if ( !elemdisplay[ nodeName ] ) { if ( !elemdisplay[ nodeName ] ) {
var elem = jQuery( "<" + nodeName + ">" ).appendTo( "body" ), var body = document.body,
elem = jQuery( "<" + nodeName + ">" ).appendTo( body ),
display = elem.css( "display" ); display = elem.css( "display" );
elem.remove(); elem.remove();
@ -588,14 +589,15 @@ function defaultDisplay( nodeName ) {
iframe.frameBorder = iframe.width = iframe.height = 0; 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. // 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 // 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 // document to it; WebKit & Firefox won't allow reusing the iframe document.
if ( !iframeDoc || !iframe.createElement ) { if ( !iframeDoc || !iframe.createElement ) {
iframeDoc = ( iframe.contentWindow || iframe.contentDocument ).document; 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 ); elem = iframeDoc.createElement( nodeName );
@ -604,7 +606,7 @@ function defaultDisplay( nodeName ) {
display = jQuery.css( elem, "display" ); display = jQuery.css( elem, "display" );
document.body.removeChild( iframe ); body.removeChild( iframe );
} }
// Store the correct default display // Store the correct default display