使用 Contenteditable / Summernote 时获取当前段落文本的计数

Get count of current paragraph text when using Contenteditable / Summernote

尝试在某种程度上复制 Medium 编辑器。

目的是让用户在单个段落中只能有文本或只有图像。

当用户将焦点放在 Summernote 上时,会显示插入图片按钮,一旦他们开始输入,它就会隐藏,直到他们点击 return 并开始一个新段落,然后该过程再次开始。

我已经使用 keyCode 进行了基本测试,并检查它们是按下键还是按下 return 键来创建新段落。但是当用户删除文本时,问题就来了。如果他们删除(退格)整个段落的内容,那么插入图像按钮应该会再次显示。

我能想到的唯一方法是获取用户正在编辑的当前 p 标签,并在键入时检查其长度。但是我在获取当前 p 标签及其内容时遇到了一个真正的问题。之后就很简单了。

有什么建议吗?

伪:

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

找到我需要的东西。

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

运行 这里选择变量的 console.log 会提供大量信息。