Мне нужно иметь возможность изменять вставленный контент при вставке (через 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) - и я не понимаю, почему.