diff options
| author | 2014-06-13 21:51:04 -0300 | |
|---|---|---|
| committer | 2014-06-13 21:51:04 -0300 | |
| commit | 3dddbd8cc879402c2047919bccd20e6697082657 (patch) | |
| tree | 38d6290f37be1d67d91c46027974e6ee3372e232 /bower_components/jquery/src/css/defaultDisplay.js | |
| parent | 7ac2cf148f7a8ea0de126fed3360b49964ce9b45 (diff) | |
| parent | 58c4878526dec5510f23c812274686787d8724ba (diff) | |
Merge tag 'upstream/7.0.1'
Upstream version 7.0.1
Diffstat (limited to 'bower_components/jquery/src/css/defaultDisplay.js')
| -rw-r--r-- | bower_components/jquery/src/css/defaultDisplay.js | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/bower_components/jquery/src/css/defaultDisplay.js b/bower_components/jquery/src/css/defaultDisplay.js new file mode 100644 index 0000000..210ad4a --- /dev/null +++ b/bower_components/jquery/src/css/defaultDisplay.js @@ -0,0 +1,69 @@ +define([ + "../core", + "../manipulation" // appendTo +], function( jQuery ) { + +var iframe, + 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 style, + elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ), + + // getDefaultComputedStyle might be reliably used only on attached element + display = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ? + + // 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 + style.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; +} + +/** + * Try to determine the default display value of an element + * @param {String} nodeName + */ +function defaultDisplay( nodeName ) { + var doc = document, + display = elemdisplay[ nodeName ]; + + if ( !display ) { + display = actualDisplay( nodeName, doc ); + + // 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'/>" )).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; + + // Support: IE + doc.write(); + doc.close(); + + display = actualDisplay( nodeName, doc ); + iframe.detach(); + } + + // Store the correct default display + elemdisplay[ nodeName ] = display; + } + + return display; +} + +return defaultDisplay; +}); |
