微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 动态显示tinymce textarea

我有一个下拉列表,当做出选择时,将使用ajax在表单中将一堆元素插入到DOM中,在此表单中我有textareas,我希望是TinyMCE textareas.

我的HTML头部里面有这个:

<script type="text/javascript">
    tinymce.init({
        selector: "textarea"

     });
</script>

这是我用来添加一堆元素的ajax函数,这是我需要的工作方式.

function getSecFacility(facsecid, facid) {

    $("#new_section_form").hide();

    $.ajax({
    type: "POST",
    url:  "facility_section_@R_837_4045@ion.PHP",
    data: 'facility_section_id='+facsecid+'&facility_id='+facid,

    success: function(data){
            $("#selected_fac_section").html(data);
    }
   });
   //loadTinyMCEEditor();
};

我的页面上有其他textareas没有被ajax插入,并且它们显示为WYSIWYG编辑器没问题,问题是当我添加新元素时.

我已经检查了其他几个问题,试图找到一个“答案”,但没有任何工作.

我尝试在我的ajax调用之后创建一个名为loadTinyMCEEditor()的函数,我在getSecFacility()函数调用它.在这函数中,我试图为这些新添加的textareas重新初始化tinyMCE.

loadTinyMCEEditor()看起来像这样:

function loadTinyMCEEditor() {
    tinyMCE.init({
            selector: "textarea"
      });
    tinyMCE.execCommand('mceAddControl', false, 'test'); //test is the class name I gave this textarea
    //tinyMCE.execCommand('mceAddControl', true, 'test'); //tried setting the bool to true..even tried without these lines
}

无论我尝试什么,我似乎无法使用新插入的textareas,我怎样才能让这些textareas成为TinyMCE textareas?

编辑

在我从下拉列表中进行选择后,我现在可以查看编辑器到我新添加的textareas.然而,这只能工作一次,如果我做第二次选择,新的textareas只显示为普通的textareas.这是我在ajax函数中改变的内容

function getFacSecFacility(facsecid, facid) {

    $("#new_section_form").hide();

    $.ajax({
    type: "POST",
    url:  "facility_section_@R_837_4045@ion.PHP",
    data: 'facility_section_id='+facsecid+'&facility_id='+facid,

    success: function(data){
            $("#selected_fac_section").html(data);
            loadTinyMCEEditor();
    }
   });
};


function loadTinyMCEEditor() {
    tinymce.init({
        selector: "textarea"
    });
}

因此,在我做出选择后,这个ajax函数将运行并显示新的textareas其他表单信息,我重新初始化tinymce编辑器但由于某种原因,这只能工作一次.

我应该更改/做什么,以便我可以从我的下拉列表中进行多项选择,以便每次新textareas显示为tinymce textareas?

解决方法:

您需要使用传入的ajax内容调用tinyMCE.activeEditor.setContent.在你的回调尝试:

tinyMCE.activeEditor.setContent(data);

问候

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐