Я пытаюсь выяснить, как добавить управляемое встроенное форматирование в contenteditable
без document.execCommand
.Под контролируемым я подразумеваю, что я хотел бы хранить данные встроенного форматирования в некотором легко управляемом формате данных, таком как json
.
Например, пользователь нажимает button
"Make text bold and add a rounded background"
, чтобы стилизовать выделенный текст.
Теперь я пытаюсь решить эту проблему, сохраняя текстовые диапазоны с соответствующим идентификатором определения стиля.Поэтому, если в будущем дизайн пользовательского интерфейса сайта изменится, к идентификатору стиля будут применены новые стили.
Проблема с этим подходом, как я вижу, заключается в том, что для поддержания списка диапазонов текста требуется много кода.Например, есть диапазон [5, 12]
полужирного текста.Для изменения события содержимого, доступного для редактирования, я должен проверить, был ли диапазон затронут или нет.
Я подозреваю, что такой код принесет много боли из-за этих событий вставки / вырезания / ввода / удаления.
Может быть, я изобрел колесо, и эта проблема уже решена?