2011-10-07 76 views
0

嗨即时通讯试图让0123'内的插入符号位置,这只需要在IE中工作,我不知道该怎么做它尝试了几个脚本,我发现与谷歌,但非他们的工作,甚至在试图修复他们后,他们没有给出正确的结果..JavaScript的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)返回[对象,ControlRangeCollection]而不是[对象的TextRange] ..有任何方式来解决这个问题?

EDIT2: 看来这使我在它背后的HTML文本索引,而不是指数所以也没毕竟工作..

回答

1

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

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

是FTB_FreeTextBox对象。我会尝试拿出一个有效的例子,一旦我拿到IE(在今天下午的某个地方)。

+0

谢谢我解决了你提供的代码的问题! – Peter

+0

它似乎没有看到我的2编辑的:( – Peter

+0

好吧,现在我看到了。就像我说过的,我将不得不在IE上自己调试和测试(因为我正在工作,所以我现在不能这样做)在linux下) – WTK

相关问题