Получить количество текущего текста абзаца при использовании Contenteditable/Summernote

пытается немного воспроизвести редактор Medium.

Цель состоит в том, чтобы пользователь мог иметь только текст или только изображение внутри одного абзаца.

Когда пользователь фокусируется на Summernote, отображается кнопка вставки изображения, как только он начинает печатать, она скрывается до тех пор, пока он не нажмет «Ввод» и не начнет новый абзац, а затем процесс начнется снова.

Я протестировал это, в основном, используя keyCode и проверяя, нажимают ли они клавиши или клавишу возврата для нового абзаца. Но проблема возникает, когда пользователь удаляет текст. Если они удаляют (удаляют) содержимое всего абзаца, кнопка вставки изображения должна отображаться снова.

Единственный способ, который я могу придумать, - это получить текущий тег p, который редактирует пользователь, и проверить его длину при нажатии клавиши. Но у меня возникла реальная проблема с получением текущего тега p и его содержимого. Остальное после этого легко.

Какие-либо предложения?

ПСЕВДО:

if ( activeParagraph.text().length) {
    showImageButton();
} else {
    hideImageButton();
}

person Lovelock    schedule 10.07.2016    source источник


Ответы (1)


Нашел то, что мне было нужно.

var selection = window.getSelection();
var length = selection.anchorOffset;

Запуск console.log для переменной выбора здесь даст массу информации.

person Lovelock    schedule 10.07.2016
comment
Вы должны пометить свой ответ как принятый, чтобы вопрос не остался без ответа;) - person YakovL; 15.07.2016