将动态加载的textarea转换为tinyMCE

时间:2013-08-18 08:28:46

标签: ajax tinymce textarea

我正在寻找如何为使用AJAX加载的textarea设置一个tinymce。

我使用TinyMCE 4.0.2(缩小版),我找到了这个方法:

var ed = tinymce.get('content');
//ed.init();
ed.render();
//ed.focus();

通过此页面:http://www.tinymce.com/wiki.php/api4:class.tinymce.Editor

代码注释是我单独测试或与其他结果一起测试的其他解决方案

这种变化几乎是正确的,textarea很好但是无法访问,我无法编辑它。

我甚至试图通过这种方法创建一个新的tinymce:

var ed = new tinymce.Editor('content');

但它不起作用(TypeError:r未定义)。

最后,我甚至测试了这样的旧代码:

tinymce.execCommand("mceAddControl", false, "content");

但我还在检查

所以我现在卡住了,你知道如何纠正我的错误吗? 我使用JQuery但是我没有使用插件tinymce.jquery,我希望可以自由地更改JS框架。 但显然是这种情况,我试过这段代码(通过http://fiddle.tinymce.com/rsdaab):

$('#content').tinymce();

这也不起作用。 这是我使用的JS代码:

$.ajax({
    url:'/admin/post/new',
    type:'get'
})
    .done(function(data) {
        $('#main').html(data);
        var ed = tinymce.get('content');
        ed.render();
    });

提前感谢你

1 个答案:

答案 0 :(得分:0)

创建一个函数:

    function tinyMceLoader(tinyMceID) {
    var ed = new tinymce.Editor(tinyMceID,
            {
                mode: "textareas",
                theme: "advanced",
                skin: "o2k7",
                directionality: "rtl",
                plugins: "autolink,lists,spellchecker,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",
                // Theme options
                theme_advanced_buttons1: "newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect,|,cut,copy,paste,pastetext,pasteword|,insertdate,inserttime,preview,|,forecolor",
                theme_advanced_buttons2: "search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertlayer,moveforward,movebackward,absolute,|,styleprops,spellchecker,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,blockquote,pagebreak,|,insertfile,insertimage,|,print",
                theme_advanced_buttons3: "ltr,rtl,|,tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,backcolor",
                theme_advanced_buttons4: "",
                theme_advanced_toolbar_location: "top",
                theme_advanced_toolbar_align: "right",
                theme_advanced_statusbar_location: "bottom",
                theme_advanced_resizing: true
            },
    tinymce.EditorManager);
    ed.render();
}

然后:

$.ajax({
    url:'/admin/post/new',
    type:'get'
    processData: false,
    contentType: false,
    success: function (e) {
                  //some code ....
                  tinyMceLoader('content');        
             }
    });