[ACCEPTED]-ckeditor - onpaste event-paste

Accepted answer
Score: 18

This should do the trick

var editor = CKEDITOR.instances.YourInputControlName;
editor.on('paste', function(evt) {
    // Update the text
    evt.editor.setData(evt.editor.getData() + ' your additional comments.');
}, editor.element.$);

0

Score: 13

Your both examples are a little bit synthetic.

At 7 first, editor.getData() gets all the content 6 of editor, so if you want to process only 5 pasted data, you need to get ev.data.html 4 and paste to correct place.

editor = CKEDITOR.instances.editor1;
editor.on('paste', function (evt) {
    var editor = evt.editor;
    evt.stop(); // we don't let editor to paste data, only for current event
    // show loader that blocks editor changes
    $.post('clean.php', {html: evt.data.html}, function (data) {
        editor.insertHtml( data.html ); // text will be inserted at correct place
        // hide loader
    }, 'json');
});

Don't use functions 3 editor.setReadonly(true/false), you won't 2 be able to paste text in correct place (in 1 cases with async data processing).

Score: 12

This example edits the content to be pasted 1 by removing all img elements.

CKEDITOR.on('instanceReady', function (ev) {
    ev.editor.on('paste', function (ev) {
        ev.data.html = ev.data.html.replace(/<img( [^>]*)?>/gi, '');
    });
});
Score: 1

I know it's an old question, but thought 4 I'd add my version of aliaksej's answer 3 as it allows the use of a custom 'cleaner' - it 2 didn't quite work for me until I modded 1 it as below.

editor = CKEDITOR.instances[id];
editor.on('paste', function (evt) { 
   evt.stop();
   $.post('/actions/clean.php', {html: evt.data.dataValue}).done(function (data) {
      evt.editor.insertHtml(data);
   }, 'json');
});
Score: 1
editor = CKEDITOR.instances[id];

editor.on('paste', function (evt) {
    evt.stop();
    var data = evt.data.dataValue;

    if (window.chrome || window.safari) {
        // removing span wrapper on webkit browsers.
        data = $(data).html();
    }
    evt.editor.insertHtml(data);
});

0

More Related questions