@Tsuintora

Альтернатива document.execCommand?

благодарю за потраченное время.

Существует ли альтернатива или реализация альтернативы document.execCommand? Проблема заключается в том, что в каждом браузере execCommand ведёт себя по разному, нет возможности устанавливать элементам классы, идентификаторы и другие аттрибуты. Плюсом, хотелось бы иметь семантическую корректность (например для жирного только strong во всех браузерах, а не span & b).

Обращал внимание на реализацию этого момента в других крупных визуальных редакторах, например, TinyMCE & WordPress Gutenberg вообще не используют этот метод (из всего арсенала используют только contenteditable).

Пример:
<p contenteditable = "true">
    <a href = "321">
        <strong>
            <em>
                Олимпиада
            </em>
        </strong>
    </a>
</p>

Если я убираю с букв "МП", то должно получится следующее:
<p contenteditable = "true">
    <a href = "321">
        <strong>
            <em>
                Оли
            </em>
        </strong>
    </a>
    МП
    <a href = "321">
        <strong>
            <em>
                иада
            </em>
        </strong>
    </a>
</p>


За ранее огромное спасибо за помощь и ещё раз за потраченное время.
  • Вопрос задан
  • 6486 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Hi-Pyncho
Можно использовать Clipboard API, так как в самой MDN предупреждают, что лучше избегать использование document.execCommand

Например, у тебя есть кнопка "Скопировать", которая скопирует содержимое нужного элемента в буфер обмена.

const copyButton = document.querySelector('.button')


Вешаешь обработчик события на эту кнопку и через объект Navigator записываешь в Clipboard нужный фрагмент текста

copyButton.addEventListener('click', () => {
  window.navigator.clipboard.writeText(input.value)
})


И теперь нужный текст в буфере обмена
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
summer Ярославль
от 100 000 до 140 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
20 апр. 2024, в 14:27
3000 руб./за проект
20 апр. 2024, в 13:56
7000 руб./за проект
20 апр. 2024, в 13:52
7000 руб./за проект