javascript FreeTextBox получить позицию каретки (IE)

Привет, я пытаюсь получить позицию каретки внутри freetextbox, это должно работать только в IE, я понятия не имею, как сделать это попробовал несколько сценариев, которые я нашел в Google, но ни один из них не работал, и даже после попытки исправить их они не дали правильного результата.

Так есть ли способ сделать это? кажется, что что-то так легко сделать, но это не так...

Используя ответ WTK, я понял это, я думаю!

function GetCaretPossion(o) {
    var r = document.selection.createRange();
    var sel = o.GetSelection();
    var re = o.CreateRange(sel);

    var rc = re.duplicate();
    re.moveToBookmark(r.getBookmark());
    rc.setEndPoint('EndToStart', re);
    return rc.text.length;
}

Изменить: это отлично работало, пока я не щелкнул тег img внутри документа, тогда кажется, что o.CreateRange(sel) возвращает [Object, ControlRangeCollection] вместо [Object, TextRange].. есть ли способ решить эту проблему??

Edit2: Кажется, это дает мне индекс в тексте, а не индекс в html за ним, поэтому в конце концов это не сработало.


person Peter    schedule 07.10.2011    source источник


Ответы (1)


Я не знаю, чего вы там пытаетесь достичь, но (смотря на исходный код FreeTextBox) они просто используют:

sel = this.GetSelection();
r = this.CreateRange(sel);

Где this — объект FTB_FreeTextBox. Я попытаюсь придумать рабочий пример, как только получу IE (где-то сегодня днем).

person WTK    schedule 07.10.2011
comment
Хорошо, теперь я это вижу. Как я уже сказал, мне придется самостоятельно отлаживать и тестировать его в IE (сейчас я не могу этого сделать, так как работаю под linux). - person WTK; 07.10.2011
comment
тебе повезло в тот день? :П - person Peter; 10.10.2011