Search code examples
javascriptjqueryhtmlckeditor

CKEDITOR : How do set `contentdom` after every SetData


I am creating a CKEditor plugin and I face some issues on this.

Model of My Plugin:

 CKEDITOR.plugins.add("myplugin", {
    //for lang,require,icon
    init:function(a){
       editor.on('contentDom', function () {
            editor.document.on('key', function (evt) {
                console.log("Key Pressed"); 
            });
       }); 
    }
 });

This is Working Fine.But,my problem is setData.

I am setting data when the user is clicking a file.

After setData the key event is not Working.

Is there any way to attach the listener to document after every setData() within plugin file?

And what are the other type of methods which are used in CKEditor like init ?

(OR)

Is there any way to setData() without affecting contentdom,key events?


Solution

  • Finally, I found the Answer.

    Refer the below Question

    CKEDITOR.setData prevents attaching of events with .on function

    And goes to the Document in CKEditor Docs Page.

    #contentDomUnload

    Finally My Code Like this,

    editor.on('contentDom', function () {
                var editable = editor.editable();
                editable.attachListener(editable, 'keyup', function (evt)  {
                      console.log('for key events');
                });
    
                editable.attachListener(editable, 'mousedown', function (evt) {
                      console.log('for click events');
                });
    });
    

    And It worked very well.