zhaojs
2023-06-09 357deb88eb2cbb0c049d20c1f2261b3b142ea5b6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
define( [
    "../core",
    "../var/document",
    "../manipulation" // appendTo
], function( jQuery, document ) {
 
var iframe,
    elemdisplay = {
 
        // Support: Firefox
        // We have to pre-define these values for FF (#10227)
        HTML: "block",
        BODY: "block"
    };
 
/**
 * 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" );
 
    // 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 ].contentDocument;
 
            // Support: IE
            doc.write();
            doc.close();
 
            display = actualDisplay( nodeName, doc );
            iframe.detach();
        }
 
        // Store the correct default display
        elemdisplay[ nodeName ] = display;
    }
 
    return display;
}
 
return defaultDisplay;
} );