So a while back I wrote this post: #TinyMCE: Fixing Pageload Flickering
Well now I have found a problem with it. When you load the page with the textarea hidden the plugins don’t seem to bind properly. I had to come up with a new way to do the same thing. Here is my solution. Not ideal but seems to work fine so far.
Notice that the ‘display:none’ is now gone and the size is now set to a size so that the textarea is not visible on the page. Although, there is a small remnant left there. Not sure I like it but I’m not sure how to hide it.
@Html.TextAreaFor(m => m.ContentHtml, new { @class = "tinymce", maxlength = 5000, @style = "height:1px; width:1px; " })
Now once TinyMCE is properly initialized I manually set the iframe size to be the height and width I want.
$('textarea.tinymce').tinymce({ script_url: '/scripts/tinymce/4.0.25/tinymce.min.js', theme: "modern", toolbar: "bold italic ", paste_auto_cleanup_on_paste: true, init_instance_callback: function (editor) { $(editor.getContainer()).find("iframe").css("height", "300px"); $(editor.getContainer()).find("iframe").css("width", "100%"); } });