QuillJS — удаление форматирования при вставке в редактор

#reactjs #typescript #quill #react-quill #react-quilljs

Вопрос:

Я ранее использовал https://github.com/quilljs/quill/issues/1184#issuecomment-403657128 чтобы убедиться, что никто не сможет вставить отформатированный текст в редактор QuillJS, потому что я хотел бы, чтобы люди использовали только несколько кнопок редактирования, которые я включил в QuillJS. С тех пор это перестало работать на меня. Мой вопрос таков:

  • это работает для всех остальных?
  • если нет, то знаете ли вы альтернативу?

Комментарии:

1. Да, этот PlainClipboard код по-прежнему отлично работает для меня с QuillJS 1.3.7. Я использую его в среде Vaadin 14.

2. Что вы подразумеваете под «это перестало работать на меня»? Что работает, а что не работает? Может ли пользователь вставить текст в редактор? Отформатирован или не отформатирован вставленный текст? …? Пожалуйста, сообщите некоторые подробности.

Ответ №1:

Одна вещь о https://github.com/quilljs/quill/issues/1184#issuecomment-403657128 это может вести себя иначе, чем вы, возможно, ожидали, может быть 'silent' .

«API, вызывающие изменение текста, также могут быть вызваны с «молчащим» источником, и в этом случае изменение текста не будет вызвано. Это не рекомендуется, так как это, скорее всего, нарушит стек отмены и другие функции, которые полагаются на полную запись изменений текста». [ https://quilljs.com/docs/api/#events ]

Поэтому, если вы ожидали text-change , что событие будет отправлено, но не получили его, измените эти две строки

 this.quill.updateContents(delta, 'silent')
this.quill.setSelection(index, length, 'silent')
 

подобный этому:

 this.quill.updateContents(delta, 'user')
this.quill.setSelection(index, length, 'user')
 

Тогда text-change событие будет уволено.