javascript FreeTextBox получить позицию каретки (IE) - PullRequest
0 голосов
/ 07 октября 2011

Привет, я пытаюсь получить позицию каретки внутри 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;
}

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

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

1 Ответ

1 голос
/ 07 октября 2011

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

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

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

...