WordPress.org

Make WordPress Core

Ticket #22762: 22762.diff

File 22762.diff, 2.0 KB (added by koopersmith, 5 years ago)
  • wp-includes/js/plupload/wp-plupload.js

     
    293293                progress: function() {},
    294294                complete: function() {},
    295295                refresh:  function() {
    296                         var node, enabled, container;
     296                        var node, attached, container, id;
    297297
    298298                        if ( this.browser ) {
    299299                                node = this.browser[0];
    300300
     301                                // Check if the browser node is in the DOM.
    301302                                while ( node ) {
    302303                                        if ( node === document.body ) {
    303                                                 enabled = true;
     304                                                attached = true;
    304305                                                break;
    305306                                        }
    306307                                        node = node.parentNode;
    307308                                }
    308309
    309                                 this.uploader.disableBrowse( ! enabled );
    310                                 // Toggle all auto-created file containers.
    311                                 this._container().toggle( enabled );
     310                                // If the browser node is not attached to the DOM, use a
     311                                // temporary container to house it, as the browser button
     312                                // shims require the button to exist in the DOM at all times.
     313                                if ( ! attached ) {
     314                                        id = 'wp-uploader-browser-' + this.uploader.id;
     315
     316                                        container = $( '#' + id );
     317                                        if ( ! container.length ) {
     318                                                container = $('<div class="wp-uploader-browser" />', {
     319                                                        id: 'wp-uploader-browser-' + this.uploader.id,
     320                                                        css: {
     321                                                                position: 'fixed',
     322                                                                top: '-1000px',
     323                                                                left: '-1000px',
     324                                                                height: 0,
     325                                                                width: 0
     326                                                        }
     327                                                }).appendTo('body');
     328                                        }
     329
     330                                        container.append( this.browser );
     331                                }
    312332                        }
    313333
    314334                        this.uploader.refresh();
    315                 },
    316 
    317                 _container: function() {
    318                         var runtime = this.uploader.runtime;
    319 
    320                         if ( this._$container && this._$container.length )
    321                                 return this._$container;
    322 
    323                         if ( 'html4' === runtime )
    324                                 return $('[target="' + this.uploader.id + '_iframe"]');
    325 
    326                         if ( 'html5' !== runtime && 'flash' !== runtime && 'silverlight' !== runtime )
    327                                 return $();
    328 
    329                         this._$container = $( '#' + this.uploader.id + '_' + runtime + '_container' );
    330                         return this._$container;
    331335                }
    332336        });
    333337