このリンクの情報は正確ですか?
https://developer.mozilla.org/en-US/docs/DOM/Selection
この文書によると:
anchorOffset: 選択のアンカーが anchorNode 内でオフセットされている文字数を返します。
FireFox を試してみると、定義が常に正しいとは限らないようです。場合によっては、オフセット プロパティが childNode の数を表しているように見えることがあります。予備テストに基づいて、次のコードが機能します。
var sel = window.getSelection() ;
var points = new Array( 0, 0 ) ;
var offset = new Array( sel.anchorOffset, sel.focusOffset ) ;
var nodes = new Array( sel.anchorNode, sel.focusNode ) ;
if ( isText )
points = offset ;
for ( j = 0 ; j < 2 && ! isText ; j++ ) {
var kids = nodes[j].childNodes ;
for ( var i = 0 ; i < offset[j] ; i++ )
points[j] += kids[i].textContent.length ;
}
まず、こんな経験をした人はいますか?第二に、 isTextの値を決定するための信頼できる方法を見つけようとして、まだ実験中です。
いくつかの点で、この投稿は部分的に質問であり、部分的に答えです。うまくいけば、コメントは新しい詳細を反映します。