代码之家  ›  专栏  ›  技术社区  ›  BostonMacOSX

多次AJAX刷新和TinyMCE出现问题

  •  7
  • BostonMacOSX  · 技术社区  · 13 年前

    所以我陷入了这种困境。

    <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。 我不知道为什么它第一次有效,而不是随后的几次。

    3 回复  |  直到 13 年前
        1
  •  13
  •   Thariama    11 年前

    您应该在重新加载之前正确关闭tinymce,以便能够在重新加载后重新初始化tinymce编辑器。这是必要的,因为tinymce不喜欢被拖来拖去。初始化的编辑器实例可能有一个唯一的id(使用重载将迫使tinymce尝试初始化具有相同id的第二个编辑器,这将失败)。

    色调3: 要关闭dtor实例,请使用:

    tinymce.execCommand('mceRemoveControl',true, editor_id);
    

    重新初始化使用

    tinymce.execCommand('mceAddControl',true, editor_id);
    

    色调4: 要关闭dtor实例,请使用:

    tinymce.execCommand('mceRemoveEditor',true,editor_id);
    

    重新初始化使用

    tinymce.execCommand('mceAddEditor',true,editor_id);
    
        2
  •  2
  •   Andre    10 年前

    对我来说,tinyMCE.remove(editor_id)起作用了。

        3
  •  1
  •   Uriel Acosta Hernández    9 年前

    Tinymce4:要关闭dtor实例,请使用:

    tinymce.remove(); 
    

    或指示一个唯一id

    tinymce.execCommand('mceRemoveEditor',true,editor_id);
    

    重新初始化使用

    tinymce.init(conftinymce);
    

    或指示一个唯一id

    tinymce.execCommand('mceAddEditor',true,editor_id);