需要显示模式,直到多个 TinyMCE 初始化完全完成

Need to show modal until multiple TinyMCE inits finished completely

我正在加载多个 TinyMCE 编辑器,使用单独的 init(),如下所示:

tinymce.init({ 
    selector:'.classOne',
    plugins: "pagebreak, code, image",
    toolbar: "pagebreak, code, image",
    relative_urls: false,
    pagebreak_separator: "<!-- page break -->",
    image_list: function(success){
        apiCall( { 
            method: "GET", 
            url: "/api/get/filelist/folder",
            data: '', 
            success: function(data) { success(JSON.parse(data.payload)); }
        } );
    }
});

有几个,每个“.classOne”或“.classTwo”等等。一切都很好,除了我试图弹出一个 "Please wait" 模式(使用 Bootstrap,顺便说一句)直到他们都完成设置。模式弹出,但很快消失(我知道为什么,这不是这个问题,它只是消失,因为代码在微型编辑器全部设置之前触发),我可以在左下角看到 "Waiting for rainmaker.tiny.cloud..."多几秒钟。它为每个编辑器加载,而且有很多,有时可能有 20-100 个。

UX 最终是他们可能会尝试单击 link(取消隐藏该特定部分的编辑器),然后才实际可用。

有没有办法让我告诉 TinyMCE init 在编辑器完全加载后调用特定函数?我查看了网站上的回调,但没有 see/understand 成功。

TinyMCE 3/4/5 都有一个名为 init_instance_callback 的方法,它会在编辑器准备就绪时触发。参见 https://www.tiny.cloud/docs/configure/integration-and-setup/#init_instance_callback

对于您的用例,我会在该回调中解决一个承诺,例如:classOnePromise.resolve(editor)

并使用 Promise.All([ classOnePromise, ... ]).then(hideModal) 隐藏模型,当所有承诺都已解决时。

希望对您有所帮助

埃金