本文作者: jsweibo
本文链接: https://jsweibo.github.io/2020/04/22/JavaScript%E4%B8%AD%E7%9A%84Selection/
摘要
本文主要讲述了:
- 作用
- 实例属性
- 原型方法
正文
作用
描述选区
- 表示用户选择的文本范围
- 表示插入符号的所在位置
注意:
Selection
的底层是基于Range
实现的Range
可以用于描述网页外的范围,但Selection
只能用于描述网页内的选区Range
可以描述不可见元素的范围,故Selection
同样可以描述不可见元素的选区,但Selection.prototype.toString()
和Range.prototype.toString()
的行为存在差异(详情参见下文)Range
无法准确描述表单控件内的范围,故Selection
同样无法准确描述表单控件内的选区
示例:Range
可以用于描述网页外的范围,但Selection
只能用于描述网页内的选区
1 |
|
示例:Range
无法准确描述表单控件内的范围,故Selection
同样无法准确描述表单控件内的选区
1 |
|
实例属性
anchorNode
起始节点
注意:起始节点即按下鼠标左键时光标所在的节点
示例:
1 |
|
anchorOffset
起始节点中的偏移量
focusNode
终止节点
注意:终止节点即松开鼠标左键时光标所在的节点
示例:
1 |
|
focusOffset
终止节点中的偏移量
isCollapsed
起点和终点是否为相同的点
rangeCount
包含Range
实例的数量
type
选区的类型
Range
范围Caret
选区被折叠(即插入符号置于某文本上,当前没有选区)None
取消选区
原型方法
selectAllChildren
将指定节点的所有子节点添加到选区中
注意:指定节点并不在选区中
示例:
1 |
|
addRange
添加Range
实例到选区中
getRangeAt
获取指定序数的Range
实例
Range
实例的总数为rangeCount
removeRange
从选区中移除将Range
实例
removeAllRanges
从选区中移除所有Range
实例
collapseToStart
将选区折叠到起点
collapseToEnd
将选区折叠到终点
collapse
将选区折叠到指定的点
toString
选区包含的文本
注意:
- 由于
Selection
无法准确描述表单控件内的选区,故Selection().prototype.toString()
同样无法准确获取表单控件内的选区所包含的文本,而会返回空字符串 - 和
Range.prototype.toString()
不同,Selection.prototype.toString()
不能返回display: none
、visibility: hidden
、hidden
的选区内包含的文本,而会返回空字符串。但Selection.prototype.toString()
可以返回opacity: 0
的选区内包含的文本
参考资料
本文作者: jsweibo
本文链接: https://jsweibo.github.io/2020/04/22/JavaScript%E4%B8%AD%E7%9A%84Selection/
本文对你有帮助?请支持我
- 本文链接: https://jsweibo.github.io/2020/04/22/JavaScript%E4%B8%AD%E7%9A%84Selection/
- 版权声明: 除非另有说明,否则本网站上的内容根据署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。