我有一个CKEDITOR,我试图将内容分成n个部分,用户通过将光标放在CKEDITOR的特定位置上来指示他想要多少个部分,然后在用户选择的上下文菜单中使用一个选项“拆分块”,这会插入一个
HTML 中的标记:
用户可以在CKEDITOR中做n次,表示用户想要分割内容的块数,每插入一个hr就是一个块。
所以当用户完成时,点击上下文菜单“Process Split”,这个动作应该执行并将内容分成n部分。
这是我拆分内容的代码:
var index = 0;
var tmpItem = null;
var ranges = new Array();
var elements = editor.document.getElementsByTag( 'hr' );
for ( var i = 0; i < elements.count() ; i++ )
{
var item = elements.getItem( i );
ranges[index] = new CKEDITOR.dom.range( editor.document );
if(tmpItem!=null)
ranges[index].setStart(tmpItem, CKEDITOR.POSITION_BEFORE_START);
else{
ranges[index].setStartAfter(editor.document.getBody().getFirst());
}
if(item.hasClass('split-end')){
ranges[index].setEnd(item, CKEDITOR.POSITION_BEFORE_START);
ranges[index].select();
index++;
var sel = editor.getSelection();
var ran = sel.getRanges();
var el = new CKEDITOR.dom.element("div");
for (var j = 1, len = ran.length; j < len-1; ++j) {
el.append(ran[j].cloneContents());
}
console.log( el.getHtml() );
}
tmpItem = item;
}
问题是:如何选择从文档开始到第一个HR等等。
非常感谢,我已经尝试这样做一个多星期了,我不知道还有什么尝试。