3
我想在CKEditor中选择特定的文本。我用下面的:从javascript中选择CKEditor中的文本范围
var sel = editor.getSelection();
var element = sel.root;
console.log(element);
sel.selectElement(element);
var findString = 'foobar';
var ranges = editor.getSelection().getRanges();
var startIndex = element.getHtml().indexOf(findString);
if (startIndex != -1) {
ranges[0].setStart(element.getFirst(), startIndex);
console.log(element.getFirst() +" - "+ startIndex);
console.log(element.getFirst() +" - "+ startIndex + findString.length);
ranges[0].setEnd(element.getFirst(), startIndex + findString.length);
sel.selectRanges([ranges[0]]);
}
它工作正常,如果它是不换行纯文本。 如果我要选择的文本是第二行之后,或者它格式化,我得到以下错误:
Uncaught Error: IndexSizeError: DOM Exception 1
到底哪里出问题了?
非常感谢,但它并没有解决我的问题。我正在处理自动填充,我能够在光标前获得文本。我想选择文本,以便我可以用新文本替换它。**因此,如何在光标前选择文本** – sathees
oleq:How我可以将样式应用于选定的项目吗?我正在使用您的代码,并且在尝试应用样式时'editor.execCommand('bold');'选择selection.selectRanges(范围)后的选定元素;'我得到一个异常:**未捕获IndexSizeError:索引或大小为负值或大于允许值。 –