2011-10-07 20 views
0

freetextbox内のキャレットポジションを取得しようとしていますこれはIEで動作する必要があります、私はそれを行う方法がわかりません。彼らは働いていて、それらを修正しようとしても、正しい結果を得られませんでした。javascript FreeTextBoxはキャレットポジション(IE)を取得

それを行う方法はありますか?とても簡単なことのようですが、それはそうではありません...

私はそれを考え出しました。

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)が代わりに[オブジェクト、TextRangeの]の[オブジェクト、ControlRangeCollection]を返すようですどのような方法でこの問題を解決するには?

EDIT2:

答えて

1

私はあなたがしようとしているのか分からない...それは結局うまくいかなかったので、これは私にその背後にあるHTMLのテキストのインデックスではなく、インデックスを与えているようです

このがFTB_FreeTextBoxオブジェクトである
sel = this.GetSelection(); 
r = this.CreateRange(sel); 

を:彼らは単に使用している(FreeTextBoxのソースコードを見て)そこachive、しかし。私は実践的な例を考え出すつもりです。いったんIEを保留にすると(この午後のどこかで)。

+0

ありがとう、私はあなたが提供したコードの問題を解決しました! – Peter

+0

それは私の2編集のを見ていないようだ:( – Peter

+0

私は言ったように、私はデバッグし、IEで自分でそれをテストする必要があるだろうlinuxの下で) – WTK

関連する問題