From e28afd4f46538362c85852ecfb5be79d4f9b14a3 Mon Sep 17 00:00:00 2001 From: Andrew Ozz Date: Mon, 6 Apr 2015 18:54:22 +0000 Subject: [PATCH] TinyMCE wpView: resize sandbox iframes on load. Fixes a problem with resizing after all images are loaded. Props iseulde, mattheu. Fixes #31480. git-svn-id: https://develop.svn.wordpress.org/trunk@32056 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/js/mce-view.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/wp-includes/js/mce-view.js b/src/wp-includes/js/mce-view.js index 7552b221ba..4eb876d0ae 100644 --- a/src/wp-includes/js/mce-view.js +++ b/src/wp-includes/js/mce-view.js @@ -489,8 +489,7 @@ window.wp = window.wp || {}; var dom = editor.dom, styles = '', bodyClasses = editor.getBody().className || '', - editorHead = editor.getDoc().getElementsByTagName( 'head' )[0], - iframe, iframeDoc, observer, i; + editorHead = editor.getDoc().getElementsByTagName( 'head' )[0]; tinymce.each( dom.$( 'link[rel="stylesheet"]', editorHead ), function( link ) { if ( link.href && link.href.indexOf( 'skins/lightgray/content.min.css' ) === -1 && @@ -503,6 +502,8 @@ window.wp = window.wp || {}; // Seems the browsers need a bit of time to insert/set the view nodes, // or the iframe will fail especially when switching Text => Visual. setTimeout( function() { + var iframe, iframeDoc, observer, i; + content.innerHTML = ''; iframe = dom.add( content, 'iframe', { @@ -572,6 +573,8 @@ window.wp = window.wp || {}; } } + $( iframe.contentWindow ).on( 'load', resize ); + if ( MutationObserver ) { observer = new MutationObserver( _.debounce( resize, 100 ) );