Я строю редактор на основе блоков, но врезался в стену о том, как действовать.
Я не хочу использовать execCommand
для выполнения таких операций, как выделение жирным шрифтом, потому что я хочу, чтобы мой редактор мог обернуть выделенный текст во что угодно, а также потому, что execCommand
работает по-разному в разных браузерах.
Моя проблема отмена фрагментированная разметка.
Например, если у нас есть такой текст.
Lorem Ipsum <strong>is simply dummy text of the printing and typesetting industry. Lorem</strong> Ipsum has been the industry's standard dummy text ever since the 1500s
и хотел просто отменить слово или два, это просто.
Но что, если у нас что-то подобное, когда форматирование вложено:
The Lost City of Atlantis is a myth and legend that has fascinated <strong>generations and captured the <mark>imagination for countless <em>storytellers since</em> the great philosopher</mark> Plato first</strong> introduced it to the masses ~360BC.
и я хотел отменить слово countless
?
Предполагая, что у меня уже есть созданный фрагмент документа, который содержит все текущие узлы, и я добавил класс selectionNode
к узлу, содержащему текст, который мы хотим отменить, что является лучшим способом распутать все, чтобы получить желаемый вывод?
Может кто-нибудь помочь направить меня в правильном направлении? Или я делаю это "трудным" путем, и все вместе есть лучшее решение?