Selection对象

Selection对象详解
本文详细介绍了网页浏览器中的Selection对象,解释了如何使用此对象来获取页面上用户选定的文本区域,包括锚点、焦点、范围等概念,以及如何利用各种方法如getRangeAt、collapse和extend等来操纵选区。

Selection对象

Selection对象一般由window.getSelection()或其他方法产生。它代表页面中的文本选区,可能横跨多个元素。文本选区由用户拖拽鼠标经过文字而产生。如果你想了解关于其他容纳纯文本的表单元素中的选区操作
Selection对象所对应的是用户所选择的 ranges (区域),俗称拖蓝。默认情况下,该函数只针对一个区域,我们可以这样使用这个函数
var selObj = window.getSelection()
var range = selObj.getRangeAt(0)

调用 Selection/toString() 方法会返回被选中区域中的纯文本。要求变量为字符串的函数会自动对对象进行该处理,例如:

var selObj = window.getSelection();
window.alert(selObj);
术语表
  • 锚点(anchor)
    锚指的是一个选区的起始点(不同于HTML中的锚点链接,译者注)。当我们使用鼠标框选一个区域的时候,锚点就是我们鼠标按下瞬间的那个点。在用户拖动鼠标时,锚点是不会变的
  • 焦点(focus)
    选区的焦点是该选区的终点,当您用鼠标框选一个选区的时候,焦点是你的鼠标松开瞬间所记录的那个点。随着用户拖动鼠标,焦点的位置会随着改变
  • 范围(range)
    范围指的是文档中连续的一部分。一个范围包括整个节点,也可以包含节点的一部分,例如文本节点的一部分。用户通常下只能选择一个范围,但是有的时候用户也有可能选择多个范围(例如当用户按下Control按键并框选多个区域时,Chrome中禁止了这个操作,译者注)。“范围”会被作为range对象返回。Range对象也能通过DOM创建、增加、删减
一、属性
属性说明
anchorNode返回该选区起点所在的节点(Node)
anchorOffset返回一个数字,其表示的是选区起点在 anchorNode 中的位置偏移量。1、如果 anchorNode 是文字节点,那么返回的就是从该文字节点的第一个字开始,直到被选中的第一个字之间的字数(如果第一个字就被选中,那么偏移量为零)2、如果 anchorNode 是一个元素,那么返回的就是在选区第一个节点之前的同级节点总数。(这些节点都是 anchorNode 的子节点)
focusNode返回该选区终点所在的节点。
focusOffset返回一个数字,其表示的是选区终点在 focusNode 中的位置偏移量。1、如果 focusNode 是文字节点,那么选区末尾未被选中的第一个字,在该文字节点中是第几个字(从0开始计),就返回它。2、如果 anchorNode 是一个元素,那么返回的就是在选区末尾之后第一个节点之前的同级节点总数
isCollapsed返回一个布尔值,用于判断选区的起始点和终点是否在同一个位置。
rangeCount返回该选区所包含的连续范围的数量
二、方法
方法说明
getRangeAt返回选区开始的节点(Node)。
collapse将当前的选区折叠为一个点。
extend将选区的焦点移动到一个特定的位置
modify修改当前的选区
collapseToStart将当前的选区折叠到起始点
collapseToEnd将当前的选区折叠到最末尾的一个点
selectAllChildren将某一指定节点的子节点框入选区
addRange一个区域(Range)对象将被加入选区
removeRange从选区中移除一个区域
removeAllRanges将所有的区域都从选区中移除
deleteFromDocument从页面中删除选区中的内容
selectionLanguageChange当键盘的朝向发生改变后修改指针的Bidi优先级
toString返回当前选区的纯文本内容
containsNode判断某一个node是否为当前选区的一部分
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值