【发布时间】:2013-02-07 23:01:46
【问题描述】:
此链接中的信息是否准确?
https://developer.mozilla.org/en-US/docs/DOM/Selection
根据本文档:
锚点偏移: 返回选择的锚点在 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 的值。
在某些方面,这篇文章部分是一个问题,部分是一个答案。希望 cmets 能反映新的细节。
【问题讨论】:
-
isText应该做什么?
标签: javascript dom selection