Select 段落并在 CKEditor 中应用样式

Select paragraph and apply style in CKEditor

当使用三次点击或 shift 和光标键选择整个段落超过段落末尾时,如果我将块样式应用到所选内容(例如标题或块引用),该样式也会应用到下一段。

有没有办法避免这种情况并仅将样式应用于所选内容?

例如:

这是 CKEditor 的一个错误(或特性)。问题是范围对象在选择后的元素处结束

<p>...</p> {[<p>text</p>] <p>}...</p>    # [] - selection, {} - range

需要移动范围的末尾:

<p>...</p> {[<p>text</p>]} <p>...</p>

我使用定制的工具栏,所以我使用如下代码应用所有块格式:

style = new CKEDITOR.style element: 'h1'
range = editor.getSelection().getRanges()[0]
if not range.collapsed and range.endOffset is 0 and range.endContainer instanceof CKEDITOR.dom.element
  range.setEndAfter range.endContainer.getPrevious()

style.applyToRange range, editor