Добавления/удаление тегов у выделенного текста в contenteditable?

Есть div contenteditable true, нужны базовые возможности - выделенный текст делать жирным, заголовком и ссылкой, эту логику реализовал таким кодом,
const setTag = (tag, linkTag = {
        type: false,
        url: null
    }) => {
        let sel, range;
        if (window.getSelection) {
            sel = window.getSelection();
            if (sel.rangeCount) {

                let DOMEleemnt;

                if (linkTag.type) {
                    DOMEleemnt = document.createElement('a');
                    DOMEleemnt.setAttribute('href', linkTag.url)
                } else {
                    DOMEleemnt = document.createElement(tag);
                }
                DOMEleemnt.innerText = sel.toString().trim();

                range = sel.getRangeAt(0);
                range.deleteContents();
                range.insertNode(DOMEleemnt);
            }
        } else if (document.selection && document.selection.createRange) {
            range = document.selection.createRange();
            range.text = '';
        }
    }

но не получается реализовать проверка на то является ли выделенный текст уже жирным, ссылкой, заголовком, чтоб их убирать (в учет нужно брать ещё то, что выделяться текст может и с клавиатуры)
  • Вопрос задан
  • 40 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы