javascript - 多个 AJAX 刷新和 TinyMCE 有问题

标签 javascript jquery ajax tinymce

所以我遇到了这种困境。

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

这加载了一堆文本区域..... 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);

关于javascript - 多个 AJAX 刷新和 TinyMCE 有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14971384/

相关文章:

javascript - 如何让自定义元素在 Firefox 中工作?

javascript - event.preventdefault 在 Firefox 中不起作用

javascript - 从图像中读取文本

javascript - 如何让 JSON.Stringify 正确解析变量?

javascript - 单击图像链接并根据 div 中的 url 淡入新页面

php - 使用 PHP 错误加载 javascript

JavaScript/jQuery - 拦截循环

javascript - Jquery 使用 select LI 改变文本的值

javascript - 如何从属性中收集信息并将它们作为数组发送?

ruby - 更改 ruby​​ Mechanize 中的输入隐藏控件