此链接中的信息是否准确?
https://developer.mozilla.org/en-US/docs/DOM/Selection
根据这份文件:
anchorOffset:返回选择的锚点在 anchorNode 内偏移的字符数。
尝试使用 FireFox,似乎定义并不总是正确的。有时,偏移属性似乎代表一定数量的子节点。根据初步测试,以下代码有效:
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的值。
在某些方面,这篇文章部分是一个问题,部分是一个答案。希望评论将反映新的细节。