簡體   English   中英

動態顯示tinymce textarea

[英]Display tinymce textarea dynamically

我有一個下拉列表,當做出選擇時,將使用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_information.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_information.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);

問候

如果要將#selected_fac_section轉換為tinymce編輯器,則應在成功函數中調用tinymce的init函數。 除非另外定義,否則Ajax調用是異步的。 所以,如果你試圖在ajax調用之外初始化textarea,那么仍然不會有一個textarea用tinymce來裝飾,因為ajax調用還沒有完成。 這次使用選擇器的id值,你應該好好去。

我是通過手機寫的,所以在這里編寫代碼很痛苦。 對不起。 只是想在你看到我的另一個答案評論之后迅速幫助你。 將在早上檢查這個帖子,以確保您是否需要更多幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM