有多个AJAX刷新和TinyMCE的问题
所以我遇到了这种困境。
tinyMCE.init({ mode : "textareas", theme : "simple" });
以上是在我的PHP页面上调用的。
我接着打电话了
var request = $.ajax( { url:"getEvents.php", type:"POST", data:{'method':'showevents'}, dataType:"html" }).done(function(msg){ $('#eventlistbody').html(msg); }); setTimeout( function(){ $(".mceSimple").each(function(){ tinyMCE.execCommand("mceAddControl",false, this.id); }) },2000);
这会加载一堆textareas ….. tinyMCE将在第一次返回时加载到所有文本区域..当我点击重新加载时再次运行上面并返回文本区域时,它们不再附带tinyMCE给他们。 我不确定为什么它第一次运行而不是后续运行。
您应该在重新加载之前正确关闭tinymce,以便能够在重新加载后重新初始化一个tinymce编辑器。 这是必要的,因为tinymce不喜欢被拖到dom周围。 初始化的编辑器实例可能有一个唯一的id(使用reload将强制tinymce尝试初始化具有相同id的第二个编辑器 – 这将失败)。
Tinymce3:要关闭edtor实例,请使用:
tinymce.execCommand('mceRemoveControl',true, editor_id);
重新初始化使用
tinymce.execCommand('mceAddControl',true, editor_id);
Tinymce4:要关闭edtor实例,请使用:
tinymce.execCommand('mceRemoveEditor',true,editor_id);
重新初始化使用
tinymce.execCommand('mceAddEditor',true,editor_id);
对我来说tinyMCE.remove(editor_id)工作。
Tinymce4:要关闭edtor实例,请使用:
tinymce.remove();
或指明一个唯一的ID
tinymce.execCommand('mceRemoveEditor',true,editor_id);
重新初始化使用
tinymce.init(conftinymce);
或指明一个唯一的ID
tinymce.execCommand('mceAddEditor',true,editor_id);