Событие CKEditor при удалении элемента? - PullRequest
0 голосов
/ 16 сентября 2011

Есть ли способ в JavaScript (или CKEditor) определить, когда изображение удаляется из CKEditor.Мне это нужно для элемента заголовка, который вставляется вместе с изображением, но как только я удаляю изображение, заголовок также следует удалить.

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

5 голосов
/ 16 сентября 2011

Не существует специальных событий, таких как onDelete или onImageRemovedFromContent.Но есть несколько событий, которые могут вам помочь.

editor.on('afterUndoImage', function( e ){ ... } )

Но afterUndoImage запускается только по команде Undo, не запускается при ручном удалении элементов.

editor.on('afterCommandExec', function( e ){ ... } )

CKEditor изменяет содержимое с execCommand (в основном),так что срабатывает при изменении многих содержимого, так что вы можете проверить разницу с помощью регулярных выражений, например.

Также вы можете использовать плагин onchange для обнаружения изменений содержимого, он объединяет onUndo,onRedo, afterCommandExec и т. Д.

0 голосов
/ 11 января 2019

Я знаю, что это довольно старо, но я остановился на поиске решения, поэтому думаю, что стоит опубликовать другой подход.

Я не хотел отслеживать все возможные изменения, так как большинствоактивность, которую я наблюдаю в моем виджете, - это обычное редактирование или создание виджета из внешних источников, поэтому я просто отслеживал события, которые могли бы привести к удалению:

    editor.widgets.on( 'instanceCreated', function(evt) {
        let widget = evt.data ;
        if (widget.name === 'mywidget') {
            widget.on('select', function() {
                widget.on('key', function(evt) {
                    if ( evt.data.keyCode == 46                       // Delete
                         || evt.data.keyCode == 8                     // Backspace
                         || evt.data.keyCode == CKEDITOR.CTRL + 88    // Ctrl-X
                    )
                        jQuery(widget.element.$).myCallback() ;    // callback defined as a jQuery function for the sake of simplicity
                }) ;
            }) ;
            widget.on('deselect', function() {
                widget.on('key', function(evt) {
                }) ;
            }) ;
        }
    }) ;

Конечно, обратный вызов должен предполагать, чтовиджет еще не был удален, но это является преимуществом, поскольку обычно нужны его данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...