WordPress.org

Make WordPress Core

Changeset 31667


Ignore:
Timestamp:
03/07/2015 04:52:54 PM (7 years ago)
Author:
azaozz
Message:

TinyMCE wpView: improve unbinding of mutationObserver in nested iframes. Props iseulde. See #31412.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/js/mce-view.js

    r31621 r31667  
    468468                    styles = '',
    469469                    bodyClasses = editor.getBody().className || '',
    470                     iframe, iframeDoc, observer, i, resize;
     470                    iframe, iframeDoc, observer, i;
    471471
    472472                content.innerHTML = '';
     
    544544                    iframeDoc.close();
    545545
    546                     resize = function() {
     546                    function resize() {
    547547                        var $iframe, iframeDocHeight;
    548548
     
    557557                            }
    558558                        }
    559                     };
     559                    }
    560560
    561561                    if ( MutationObserver ) {
    562                         observer = new MutationObserver( _.debounce( function() {
    563                             resize();
    564                         }, 100 ) );
     562                        observer = new MutationObserver( _.debounce( resize, 100 ) );
    565563
    566564                        observer.observe( iframeDoc.body, {
     
    569567                            subtree: true
    570568                        } );
     569
     570                        $( node ).one( 'wp-mce-view-unbind', function() {
     571                            observer.disconnect();
     572                        } );
    571573                    } else {
    572574                        for ( i = 1; i < 6; i++ ) {
     
    581583                    if ( importStyles ) {
    582584                        editor.on( 'wp-body-class-change', classChange );
    583                     }
    584 
    585                     $( node ).one( 'wp-mce-view-unbind', function() {
    586                         observer.disconnect();
    587                         editor.off( 'wp-body-class-change', classChange );
    588                     } );
     585
     586                        $( node ).one( 'wp-mce-view-unbind', function() {
     587                            editor.off( 'wp-body-class-change', classChange );
     588                        } );
     589                    }
    589590                }, 50 );
    590591
Note: See TracChangeset for help on using the changeset viewer.