Как я могу отключить события отбрасывания в CKEditor 5 - PullRequest
0 голосов
/ 28 мая 2018

мы пытаемся внедрить CKEditor 5 в наши приложения и немного боремся с документами.

Мы хотим отключить событие перетаскивания в область редактирования или каким-либо образом управлять им.Есть событие для этого?

Мы пытались editor.model.document.on('clipboardInput') или editor.model.document.on('dragover') без удачи.Эти события не запускаются.

1 Ответ

0 голосов
/ 30 мая 2018

Вам необходимо прослушивать события dragover и drop в слое view вместо модели .

Я подготовил простую функцию, которая может быть загружена как плагин в CKEditor 5, который отменяет эти события:

/**
 * Cancel the `drop` and `dragover` events.
 *
 * @param {module:core/editor/editor~Editor} editor
 */
function cancelDropEvents( editor ) {
    // High priority means that the callbacks below will be called before other CKEditor's plugins.

    editor.editing.view.document.on( 'drop', ( evt, data ) => {
        // Stop executing next callbacks.
        evt.stop();

        // Prevent the default event action.
        data.preventDefault();
    }, { priority: 'high' } );

    editor.editing.view.document.on( 'dragover', ( evt, data ) => {
        evt.stop();
        data.preventDefault();
    }, { priority: 'high' } );
}

Вы можете проверить, как это работает онлайн - https://jsfiddle.net/pomek/qz0o9ku0/.

...