0

嗨,我试图在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 中的索引,所以它毕竟没有工作..

4

1 回答 1

1

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

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

是一个FTB_FreeTextBox对象。一旦我掌握了 IE(大约在今天下午的某个地方),我将尝试提出一个可行的示例。

于 2011-10-07T08:12:11.373 回答