ckeditor: изменить вставленный контент в режиме источника - PullRequest
0 голосов
/ 23 апреля 2020

Мне нужно иметь возможность изменять вставленный контент при вставке (через Ctrl + v) в исходном режиме, и я изо всех сил пытаюсь найти решение.

Событие вставки срабатывает только в режиме редактора, поэтому не вариант. В соответствии с другими предложениями для работы со стеком я пытался работать с ключевым событием. Хотя это срабатывает в исходном режиме, и я могу указать код клавиши Ctrl + v, я не смог получить содержимое буфера обмена, чтобы изменить его. Использование getData () не работает, поскольку в момент перехвата содержимое еще не находится в редакторе. Я смотрел на работу с содержимым буфера обмена напрямую, но, поскольку содержимое обычно копируется извне браузера, я не могу контролировать его манипулирование.

Рабочий процесс и цель здесь - изменить HTML это скопировано извне браузера и вставлено в режим источника CKEditor.

ОБНОВЛЕНИЕ

Возможно, у меня есть инициатива, пытающаяся использовать dataProcessor.dataFilter для этого - но я все еще застреваю. Вот с чем я сейчас работаю:

CKEDITOR.on('instanceReady', function (ev) {
  ev.editor.dataProcessor.dataFilter.addRules({
    elements: {
      head: function( el ) {
        //wrap element in text string
      }
    }
  });
});

Но я застрял, пытаясь обернуть элемент в текстовую строку. Я думаю, что использование insertAdjacentText () было самой многообещающей идеей, но оно выдает ошибки, утверждающие, что это неизвестная функция. Я думаю, что смущен тем, что на самом деле означает «эль». Я могу успешно применить некоторые простые js функции (например, addClass), но другие не возвращают ожидаемые значения (например, внутренние Html) - и я не понимаю, почему.

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