所以我遇到了这种困境。
<SCRIPT src="../js/tiny_mce/tiny_mce.js"></script> <SCRIPT type="text/javascript"> tinyMCE.init({ mode : "textareas", theme : "simple" }); </SCRIPT> <SCRIPT src="../js/admin.js"></script>
以上是在我的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(使用重载将迫使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);