mceAddEditor后的tinyMCE 4实例确实很高

时间:2014-11-04 14:24:43

标签: tinymce-4

预先注意:无论页面上是否已有textarea,都会出现此问题。

我有一个按钮,首先触发ajax请求...向数据库写入内容并返回密钥。我在我的ID中使用该键作为textarea,然后动态添加到页面。请记住,tinyMCE已经初始化。

tinymce.init({
        selector: ".editor",
        setup: function(ed) {
            ed.on('change', function(e) {
                tinymce.triggerSave();
                $('form').trigger('checkform.areYouSure');
            });
            ed.on('init', function(e) {
                autoresize_max_height: 500
            });
        },
        plugins: [
            "advlist autolink link responsivefilemanager lists charmap print preview hr anchor pagebreak spellchecker",
            "searchreplace wordcount visualblocks visualchars code fullscreen insertdatetime media nonbreaking",
            "save table contextmenu directionality template paste textcolor colorpicker responsivefilemanager autoresize"
        ],
        toolbar: "undo redo | styleselect | bold italic | forecolor backcolor | alignleft aligncenter alignright | bullist numlist | outdent indent | table | link responsivefilemanager",
        image_advtab: true ,

        external_filemanager_path:"/filemanager/",
        filemanager_title:"Filemanager" ,
        external_plugins: { "filemanager" : "/filemanager/plugin.min.js"},
    });

在动态创建textarea之后,我添加了一些默认的Lorem Ipsum'发短信并调用mceAddEditor

tinymce.execCommand('mceAddEditor', false, "custom-html_" + data.c2akey);

data.c2akey是从ajax调用返回的密钥。

成功创建了tinymce实例。

问题在于:

1)实例超级高。除非我在textarea的父容器上设置静态高度,否则编辑器非常高。高于500px(来自 autoresize_max_height )。在父容器上设置静态高度的问题是autoresize不会工作。此外,我在这个新编辑器中看不到textarea的文本。

2)我无法输入这个新创建的实例。见Can't type in tinyMCE 4 instance after mceAddEditor

所以我需要帮助弄清楚为什么实例在创建时非常高。

1 个答案:

答案 0 :(得分:1)

你的第一个问题(实例超高)我已经解决了如下问题:

tinymce.init({
    ...
    init_instance_callback : function(editor) {
         $(editor.iframeElement)
                .contents()
                .find('body')
                .css('min-height', editor.targetElm.rows * 9);
    }
});