首页 > 解决方案 > 检查 CKEditor 是否已初始化

问题描述

我有 CKEditor 的邮件应用程序,下面的代码用于打开邮件模式,然后在 textarea 上创建 CKEditor,

<textarea id="editor" name="editor" class="border-0"></textarea>
        $(document).on('click', '.sendEmailButton', function () { 
            //Show mail modal
            $('#compose').modal("show");

            //Init. Editor
            ClassicEditor
            .create( document.querySelector( '#editor' ) )
            .then( newEditor => {
                editor = newEditor;
            } )
            .catch( error => {
                console.error( error );
            } );
        });

我的问题是,当用户单击.sendEmailButton它时,它会再次重新创建编辑器textarea

如何检查是否textarea分配了 CKEditor 以便在下次单击时不会重新创建它?

谢谢,

标签: javascriptckeditor

解决方案


检查如下,然后创建CKEDITOR将编辑器分配给空的全局变量,然后检查它是否为空。初始化它将为空,它将创建。接下来它将被编辑器占用,而不是再次创建它。

var editorVar = "";

$(document).on('click', '.sendEmailButton', function () { 
         //Show mail modal
         $('#compose').modal("show");

         //Init. Editor

            
         if(editorVar == "") {
            ClassicEditor
            .create( document.querySelector( '#editor' ) )
            .then( newEditor => {
                editor = newEditor;
                editorVar = newEditor;
            } )
            .catch( error => {
                console.error( error );
            } );
         }
});

推荐阅读