|
@@ -4,17 +4,28 @@ define([ |
|
|
], function( jQuery ) { |
|
|
|
|
|
var iframe, |
|
|
elemdisplay = { BODY: "block" }; |
|
|
elemdisplay = {}; |
|
|
|
|
|
/** |
|
|
* Retrieve the actual display of a element |
|
|
* @param {String} name nodeName of the element |
|
|
* @param {Object} doc Document object |
|
|
*/ |
|
|
// Called only from within defaultDisplay |
|
|
function actualDisplay( name, doc ) { |
|
|
var elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ), |
|
|
display = jQuery.css( elem[0], "display" ); |
|
|
elem.remove(); |
|
|
|
|
|
// getDefaultComputedStyle might be reliably used only on attached element |
|
|
display = window.getDefaultComputedStyle ? |
|
|
|
|
|
// Use of this method is a temporary fix (more like optmization) until something better comes along, |
|
|
// since it was removed from specification and supported only in FF |
|
|
window.getDefaultComputedStyle( elem[ 0 ] ).display : jQuery.css( elem[ 0 ], "display" ); |
|
|
|
|
|
// We don't have any data stored on the element, |
|
|
// so use "detach" method as fast way to get rid of the element |
|
|
elem.detach(); |
|
|
|
|
|
return display; |
|
|
} |
|
|
|
|
@@ -31,15 +42,15 @@ function defaultDisplay( nodeName ) { |
|
|
|
|
|
// If the simple way fails, read from inside an iframe |
|
|
if ( display === "none" || !display ) { |
|
|
|
|
|
// Use the already-created iframe if possible |
|
|
iframe = ( iframe || |
|
|
jQuery("<iframe frameborder='0' width='0' height='0'/>") |
|
|
.css( "cssText", "display:block !important" ) |
|
|
).appendTo( doc.documentElement ); |
|
|
iframe = (iframe || jQuery( "<iframe frameborder='0' width='0' height='0'/>" )).appendTo( doc.documentElement ); |
|
|
|
|
|
// Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse |
|
|
doc = ( iframe[0].contentWindow || iframe[0].contentDocument ).document; |
|
|
doc.write("<!doctype html><html><body>"); |
|
|
doc = iframe[ 0 ].contentDocument; |
|
|
|
|
|
// Support: IE |
|
|
doc.write(); |
|
|
doc.close(); |
|
|
|
|
|
display = actualDisplay( nodeName, doc ); |
|
|