2013-10-03 99 views
0

當我顯示它時,我有一個包含2個工作的tinymce編輯器的頁面。使用用戶控件(已加載頁面)將Textarea動態添加到頁面中。下面的JS/coffescript旨在TinyMCE的編輯器添加到新的textarea:動態添加一個tinymce編輯器

$(document).on 'nested:fieldAdded', (event) -> 
    tinyMCE.execCommand("mceAddControl", false, event.field.find('textarea').attr("id")) 

如果我做一個alert event.field.find('textarea').attr("id"),則返回地方應加入編輯文本字段的正確ID。但是,它不會將tinyMCE添加到textarea。我還可以看到,當顯示警告時,textarea存在於頁面上,我想這意味着它在腳本嘗試添加tinymce時存在。

在我的身體上,我有以下腳本:

<script type="text/javascript"> 
//<![CDATA[ 
tinyMCE.init({"selector":"textarea.tinymce","theme_advanced_toolbar_location":"top","theme_advanced_toolbar_align":"left","theme_advanced_statusbar_location":"bottom","theme_advanced_buttons3_add":"tablecontrols,fullscreen","plugins":"paste,table,fullscreen","dialog_type":"modal","content_css":"/assets/application.css"}); 
//]]> 
</script> 

什麼我需要改變我的腳本成功地添加tinyMCE的新textarea的?

回答

1

tinymce編輯器將應用的控件首先需要渲染。重點是它需要將元素添加到DOM中並首先加載。

也許你可以嘗試添加一些時間延遲到您的腳本添加/應用編輯器。

試試這個(可能這會幫助你)

做一個功能

function loadTinyMCEEditor() { 
    tinyMCE.init({ 
    }); 
} 

和頁面完全加載和您的動態控制添加到DOM後打電話loadTinyMCEEditor()

+0

儘管這裏已經有了tinyMCE.init,並且已經調用了(2個工作編輯器已經在頁面上),但它並沒有工作。你是對的,它需要在execCommand之前調用。 – Syl

相關問題