动态添加TinyMCE时出现问题

时间:2011-05-29 12:57:16

标签: tinymce

我有一个页面,我用javascript向DOM添加textareas,我希望他们有一个TinyMCE编辑器。

当我添加第一个textarea时,一切都很好。添加下一个问题时会出现问题。 它看起来像这样: http://dl.dropbox.com/u/1918752/tinymce_problem.png

在firebug控制台中,抛出了“d is undefined”错误。

我正在使用

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

将TinyMCE控件添加到新插入的textarea。

我正在使用TinyMCE 3.0.1版,不幸的是现在升级并不是一个选择。

稍后编辑:

我用来插入textareas的函数:

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');
    }
}

content参数是textarea的位置。 这是在rails应用程序中使用的,我创建了一个帮助程序,它根据所使用的关联类型返回一个标准的html块,然后我将通用ID替换为新的唯一ID并插入到DOM中。

1 个答案:

答案 0 :(得分:2)

我认为您没有正确关闭tinymce以便重新使用相同ID的edito实例!

要正确关闭编辑器实例,请使用:

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

当您在dom中移动编辑器或删除包含编辑器iframe的dom部分时,这是必需的。