0

私はラベルを持っていて、それに設定ondblclickしています:

<label ondblclick="foo(event);" 
 style="white-space: pre; font-family: Monospace; font-size: 12px;">
lot's of text here blah blah blah and more...

テキスト内の単語をダブルクリックすると、Javascript 関数へのコールバックを取得します。

選択したテキストの文字数を知りたいです。

次のようなものを使用して、選択自体を取得できます。

(window.getSelection && window.getSelection().toString())

もちろん、私はテキストノード自体を持っているので、テキスト全体があります。

しかし、選択範囲はテキスト ノードに何度も表示される可能性があります。文字の観点からオフセットを知る必要があります。たとえば、ユーザーが何とかをダブルクリックした場合、それがどれであるかを知りたいです。

イベントで見つけることができるのは、私にはピクセルのように見えるさまざまな X、Y 座標だけですが、2 つのスクロール バー、書式設定などがあるため、ピクセルから文字オフセットを計算することは非常に困難です。

この情報はイベント データのどこかにあるのでしょうか、それとも何らかの形でこれを計算するためのコードはありますか?

どんな助けでも大歓迎です。

4

1 に答える 1