IE8 のデザイン モードで、iframe 内のテキストのキャレット位置を取得しようとしています。私が持っているコードは機能しますが、長いテキストの場合、すべてのテキストを選択してから一度に1文字ずつ範囲の終わりを移動し始めるため、パフォーマンスが悪く醜いです。
IE で現在のキャレット位置を取得するためのより高速でエレガントな方法があるのだろうか? ここに私の現在のコードがあります:
var r = doc.selection.createRange();
r.collapse(false);
doc.execCommand("SelectAll") //this is ugly..
var r2 = doc.selection.createRange();
r2.select();
//..and this is slow
while (r.compareEndPoints("EndToEnd", r2) < 0) {
r2.moveEnd("character", -1)
r2.select();
}
pos = r2.text.length;