javascript FreeTextBox获取插入位置(IE)

时间:2011-10-07 07:05:28

标签: javascript freetextbox getcaretpos

嗨我试图让freetextbox内的插入位置只需要在IE中工作,我不知道怎么做它尝试了一些我发现谷歌的脚本,但没有工作,甚至在尝试修复它们后,它们没有给出正确的结果。

那么有什么方法可以做到吗?似乎有些事情很容易做但却不是......

通过使用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中的索引,所以它毕竟不起作用..

1 个答案:

答案 0 :(得分:1)

我不知道你想要在那里做什么,但是(看看FreeTextBox源代码)他们只是简单地使用:

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

其中是FTB_FreeTextBox对象。一旦我掌握了IE(今天下午某个地方),我会尝试提出一个有效的例子。