有多个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);