Quill.js: при регистрации PlainClipboard содержимое исходного редактора теряет все форматы

PlainClipboard Показанный в документе очень полезен, когда мы хотим, чтобы Quill очищал все форматы при вставке контента (например, копирование с веб-страниц). Но если мы зарегистрируем этот модуль как 'modules/clipboard'любые форматы в исходном контейнере редактора также будут удалены:

<div id="editor-container">
    <ol><li>1</li><li>2</li><li>3</li></ol>
</div>

потому что исходный контент также обрабатывается convert() функция, когда редактор инициализирован. Чтобы обойти это, я использовал флаг, чтобы указать, является ли это инициализацией редактора или обычным вставлением пользователя:

var quill_initializing = true;

class PlainClipboard extends Clipboard {
    convert(html = null) {
        if (quill_initializing) {
            quill_initializing = false;
            return super.convert(html);
        } else {
            if (typeof html === 'string') {
                this.container.innerHTML = html;
            }
            let text = this.container.innerText;
            this.container.innerHTML = '';
            return new Delta().insert(text);
        }
    }
}

Это работает для Quill 1.3.1, но после обновления до Quill 1.3.2 этот подход перестает работать.

Есть ли способ это исправить?

0 ответов

Другие вопросы по тегам