我有一个页面,我用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中。
答案 0 :(得分:2)
我认为您没有正确关闭tinymce以便重新使用相同ID的edito实例!
要正确关闭编辑器实例,请使用:
tinyMCE.execCommand("mceRemoveControl", false, 'textarea_id');
当您在dom中移动编辑器或删除包含编辑器iframe的dom部分时,这是必需的。