2011-05-29 82 views
0

我有一個頁面,我用javascript將textareas添加到DOM,我希望他們有一個附加的TinyMCE編輯器。動態添加TinyMCE時出現問題

當我添加第一個textarea一切都很好。問題發生在下一個添加。 它看起來像這樣: http://dl.dropbox.com/u/1918752/tinymce_problem.png

在螢火蟲控制檯,有一個「d是未定義的」錯誤拋出。

我使用

tinyMCE.execCommand("mceAddControl", false, 'textarea_id'); 

添加TinyMCE的控制,新插入的文本區域。

我正在使用TinyMCE版本3.0.1,不幸的是升級現在不是真正的選擇。

後來編輯:

我用插入文本域功能:

function add_fields(link, association, content) { 
    var new_id = new Date().getTime(); 
    var regexp = new RegExp("new_" + association, "g"); 
    var reg = new RegExp("child_", "g"); 
    $(link).up().previous('ul').insert(content.replace(regexp, new_id).replace(reg, "child_"+new_id)); 
    if($('estore_products_category_children_attributes_'+new_id+'_description')) { 
     tinyMCE.execCommand("mceAddControl", false, 'estore_products_category_children_attributes_'+new_id+'_description'); 
    } 
} 

含量參數就是textarea裏。 這是在一個Rails應用程序中使用的,我創建了一個幫助器,它根據所使用的關聯類型返回一個標準html塊,然後用新的唯一元素替換泛型ID並插入到DOM中。

+0

您的文字區域是否有不同的ID?如果是的話,你在第二個文本區域添加TinyMCE時使用了正確的ID嗎? – Ben 2011-05-29 13:06:10

+0

是的,那是我檢查的第一件事。 – adivasile 2011-05-29 13:07:30

+0

我想你可能不得不向我們展示你用來添加textareas和TinyMCE的確切代碼。 – Ben 2011-05-29 13:14:20

回答

2

我想你沒有正確地關閉tinymce爲了撤消edito實例具有相同的ID!

要關閉一個編輯器實例正確使用:

tinyMCE.execCommand("mceRemoveControl", false, 'textarea_id'); 

當您移動編輯器中的DOM內或當您刪除包含iframe的編輯DOM的部分這是必要的。

+0

我不認爲我明白你的意思。我不想刪除TinyMCE,我只是想將控件添加到更多textareas。textareas也有唯一的ID。 – adivasile 2011-05-30 12:06:11

+0

好吧,我以爲你會刪除實例。請發佈完整的tinymce init – Thariama 2011-05-30 12:48:46