选择段落并在CKEditor中应用样式

时间:2015-03-31 20:41:24

标签: ckeditor

当使用三次单击或移位和光标键选择整个段落超过段落末尾时,如果我将块样式应用于选择(例如标题或块引用),则样式也将应用于下一段

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

例如:

Selecting a line with triple click (in blue) and applying a style

1 个答案:

答案 0 :(得分:1)

这是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