2011-10-07 89 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

相關問題