我为CKEditor 4创建了一个自定义插件。
我需要检索选择中的所有标记并将它们包装在父标记中。当只有一个标签级别时,它工作正常。如果我选择父标签和嵌套标签,我会用extractContents
方法将它们删除;二级标签倒置。
例如,我有以下标记:
<p>test string1</p>
<p>test string2</p>
<blockquote>
<p>1</p>
<p>2</p>
<p>3</p>
<p>4</p>
<p>5</p>
<p>6</p>
</blockquote>
在选择时调用extractContents
:
var containers = [];
var fragment = editor.getSelection().getRanges()[0].extractContents();
var mySectionElement = new CKEDITOR.dom.element('my-section', editor.document);
fragment.appendTo(mySectionElement);
editor.insertElement(mySectionElement);
containers.push(mySectionElement);
我通过childNodes收到fragment
变量:
<p>test string1</p>
<p>test string2</p>
<blockquote>
<p>6</p>
<p>5</p>
<p>4</p>
<p>3</p>
<p>2</p>
<p>1</p>
</blockquote>
你有没有注意到这样的事情?我该如何预防?