ajax刷新后,TinyMCE init失败

时间:2015-07-07 15:43:17

标签: javascript tinymce tinymce-4

我正在使用TinyMCE 4.1.10在页面上的几个div上启用内联编辑。在初始页面加载时一切正常,但是如果我拆除编辑器并在ajax调用中重新绑定textareas,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
        });
    };

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

更新 我只是注意到它似乎不是所有的div,但是在工作的div和没有的div中没有​​区别。如果绑定,它们都由相同的ko生成。

1 个答案:

答案 0 :(得分:4)

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