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]]);
}
改行なしのプレーンテキストであれば問題なく動作します。選択したいテキストが 2 行目以降にある場合、または書式設定されている場合、次のエラーが発生します。
キャッチされないエラー: IndexSizeError: DOM 例外 1
何がうまくいかないのですか?