js/tinymce/plugins/autoresize/plugin.js
function resize(e) {
        var deltaSize, doc, body, docElm, resizeHeight, myHeight,
          marginTop, marginBottom, paddingTop, paddingBottom, borderTop, borderBottom;

        doc = editor.getDoc();
        if (!doc) {
          return;
        }

        body = doc.body;
        docElm = doc.documentElement;
        resizeHeight = settings.autoresize_min_height;

        if (!body || (e && e.type === "setcontent" && e.initial) || isFullscreen()) {
          if (body && docElm) {
            body.style.overflowY = "auto";
            docElm.style.overflowY = "auto"; // Old IE
          }

          return;
        }

        // Calculate outer height of the body element using CSS styles
        marginTop = editor.dom.getStyle(body, 'margin-top', true);
        marginBottom = editor.dom.getStyle(body, 'margin-bottom', true);
        paddingTop = editor.dom.getStyle(body, 'padding-top', true);
        paddingBottom = editor.dom.getStyle(body, 'padding-bottom', true);
        borderTop = editor.dom.getStyle(body, 'border-top-width', true);
        borderBottom = editor.dom.getStyle(body, 'border-bottom-width', true);
        myHeight = body.offsetHeight + parseInt(marginTop, 10) + parseInt(marginBottom, 10) +
          parseInt(paddingTop, 10) + parseInt(paddingBottom, 10) +
          parseInt(borderTop, 10) + parseInt(borderBottom, 10);

        // Make sure we have a valid height
        if (isNaN(myHeight) || myHeight <= 0) {
          // Get height differently depending on the browser used
          // eslint-disable-next-line no-nested-ternary
          myHeight = Env.ie ? body.scrollHeight : (Env.webkit && body.clientHeight === 0 ? 0 : body.offsetHeight);
        }

        // Don't make it smaller than the minimum height
        if (myHeight > settings.autoresize_min_height) {
          resizeHeight = myHeight;
        }

        // If a maximum height has been defined don't exceed this height
        if (settings.autoresize_max_height && myHeight > settings.autoresize_max_height) {
          resizeHeight = settings.autoresize_max_height;
          body.style.overflowY = "auto";
          docElm.style.overflowY = "auto"; // Old IE
        } else {
          body.style.overflowY = "hidden";
          docElm.style.overflowY = "hidden"; // Old IE
          body.scrollTop = 0;
        }

        // Resize content element
        if (resizeHeight !== oldSize) {
          deltaSize = resizeHeight - oldSize;
          DOM.setStyle(editor.iframeElement, 'height', resizeHeight + 'px');
          oldSize = resizeHeight;

          // WebKit doesn't decrease the size of the body element until the iframe gets resized
          // So we need to continue to resize the iframe down until the size gets fixed
          if (Env.webKit && deltaSize < 0) {
            resize(e);
          }
        }
      }
function resize(e) {
        var deltaSize, doc, body, docElm, resizeHeight, myHeight,
          marginTop, marginBottom, paddingTop, paddingBottom, borderTop, borderBottom;

        doc = editor.getDoc();
        if (!doc) {
          return;
        }

        body = doc.body;
        docElm = doc.documentElement;
        resizeHeight = settings.autoresize_min_height;

        if (!body || (e && e.type === "setcontent" && e.initial) || isFullscreen()) {
          if (body && docElm) {
            body.style.overflowY = "auto";
            docElm.style.overflowY = "auto"; // Old IE
          }

          return;
        }

        // Calculate outer height of the body element using CSS styles
        marginTop = editor.dom.getStyle(body, 'margin-top', true);
        marginBottom = editor.dom.getStyle(body, 'margin-bottom', true);
        paddingTop = editor.dom.getStyle(body, 'padding-top', true);
        paddingBottom = editor.dom.getStyle(body, 'padding-bottom', true);
        borderTop = editor.dom.getStyle(body, 'border-top-width', true);
        borderBottom = editor.dom.getStyle(body, 'border-bottom-width', true);
        myHeight = body.offsetHeight + parseInt(marginTop, 10) + parseInt(marginBottom, 10) +
          parseInt(paddingTop, 10) + parseInt(paddingBottom, 10) +
          parseInt(borderTop, 10) + parseInt(borderBottom, 10);

        // Make sure we have a valid height
        if (isNaN(myHeight) || myHeight <= 0) {
          // Get height differently depending on the browser used
          // eslint-disable-next-line no-nested-ternary
          myHeight = Env.ie ? body.scrollHeight : (Env.webkit && body.clientHeight === 0 ? 0 : body.offsetHeight);
        }

        // Don't make it smaller than the minimum height
        if (myHeight > settings.autoresize_min_height) {
          resizeHeight = myHeight;
        }

        // If a maximum height has been defined don't exceed this height
        if (settings.autoresize_max_height && myHeight > settings.autoresize_max_height) {
          resizeHeight = settings.autoresize_max_height;
          body.style.overflowY = "auto";
          docElm.style.overflowY = "auto"; // Old IE
        } else {
          body.style.overflowY = "hidden";
          docElm.style.overflowY = "hidden"; // Old IE
          body.scrollTop = 0;
        }

        // Resize content element
        if (resizeHeight !== oldSize) {
          deltaSize = resizeHeight - oldSize;
          DOM.setStyle(editor.iframeElement, 'height', resizeHeight + 'px');
          oldSize = resizeHeight;

          // WebKit doesn't decrease the size of the body element until the iframe gets resized
          // So we need to continue to resize the iframe down until the size gets fixed
          if (Env.webKit && deltaSize < 0) {
            resize(e);
          }
        }
      }
function resize ( e ) { var deltaSize , doc , body , docElm , resizeHeight , myHeight , marginTop , marginBottom , paddingTop , paddingBottom , borderTop , borderBottom ; doc = editor . getDoc ( ) ; if ( ! doc ) { return ; } body = doc . body ; docElm = doc . documentElement ; resizeHeight = settings . autoresize_min_height ; if ( ! body || ( e && e . type === "setcontent" && e . initial ) || isFullscreen ( ) ) { if ( body && docElm ) { body . style . overflowY = "auto" ; docElm . style . overflowY = "auto" ; // Old IE } return ; } // Calculate outer height of the body element using CSS styles marginTop = editor . dom . getStyle ( body , 'margin-top' , true ) ; marginBottom = editor . dom . getStyle ( body , 'margin-bottom' , true ) ; paddingTop = editor . dom . getStyle ( body , 'padding-top' , true ) ; paddingBottom = editor . dom . getStyle ( body , 'padding-bottom' , true ) ; borderTop = editor . dom . getStyle ( body , 'border-top-width' , true ) ; borderBottom = editor . dom . getStyle ( body , 'border-bottom-width' , true ) ; myHeight = body . offsetHeight + parseInt ( marginTop , 10 ) + parseInt ( marginBottom , 10 ) + parseInt ( paddingTop , 10 ) + parseInt ( paddingBottom , 10 ) + parseInt ( borderTop , 10 ) + parseInt ( borderBottom , 10 ) ; // Make sure we have a valid height if ( isNaN ( myHeight ) || myHeight <= 0 ) { // Get height differently depending on the browser used // eslint-disable-next-line no-nested-ternary myHeight = Env . ie ? body . scrollHeight : ( Env . webkit && body . clientHeight === 0 ? 0 : body . offsetHeight ) ; } // Don't make it smaller than the minimum height if ( myHeight > settings . autoresize_min_height ) { resizeHeight = myHeight ; } // If a maximum height has been defined don't exceed this height if ( settings . autoresize_max_height && myHeight > settings . autoresize_max_height ) { resizeHeight = settings . autoresize_max_height ; body . style . overflowY = "auto" ; docElm . style . overflowY = "auto" ; // Old IE } else { body . style . overflowY = "hidden" ; docElm . style . overflowY = "hidden" ; // Old IE body . scrollTop = 0 ; } // Resize content element if ( resizeHeight !== oldSize ) { deltaSize = resizeHeight - oldSize ; DOM . setStyle ( editor . iframeElement , 'height' , resizeHeight + 'px' ) ; oldSize = resizeHeight ; // WebKit doesn't decrease the size of the body element until the iframe gets resized // So we need to continue to resize the iframe down until the size gets fixed if ( Env . webKit && deltaSize < 0 ) { resize ( e ) ; } } }
This method gets executed each time the editor needs to resize.
This method gets executed each time the editor needs to resize .