ajax刷新后TinyMCE init失败

Dev*_*ble 3 javascript tinymce tinymce-4

我正在使用 TinyMCE 4.1.10 在页面上的多个 div 上启用内联编辑。在初始页面加载时一切正常,但是如果我拆除编辑器并在 ajax 调用中重新绑定文本区域,TinyMCE 将不会重新连接到它们。绑定是通过 Knockout 完成的。

这是最初加载数据的函数,也会在发生刷新时调用。

    this.loadLetterFields = function () {
        var editors = $("div.editable");
        for (var i = editors.length - 1; i > -1; i--) {
            var ed_id = editors[i].id;
            tinymce.execCommand("mceRemoveEditor", false, ed_id);
        }

        $.getJSON(_this.fieldURL + "/" + _this.letterId() + "/" + _this.clientId() + "/" + _this.caseId(), function (data) {
            for (var i = 0; i < data.length; i++) {
                // Reload fields
            }
        });

        tinymce.init({
            selector: "div.editable",
            inline: true,
            menubar: false,
            statusbar: false,
            toolbar: "bold italic underline | alignleft aligncenter alignright | bullist numlist outdent indent",
            forced_root_block: false
        });
    };
Run Code Online (Sandbox Code Playgroud)

我已经从几个 SO 帖子中拼凑出我所拥有的东西,但这似乎是一个反复出现的问题。有什么解决办法吗?这是一个已知的错误?

更新: 我只是注意到它似乎不是所有的 div,但是工作的 div 和不工作的 div 没有区别。它们都是由同一个 ko if binding 生成的。

小智 5

我遇到了类似的问题。我的解决方案是tinyMCE.remove();在调用重新加载之前调用。然后tinyMCE.init();会按预期工作。

  • 也为我工作过。谢谢 (2认同)