浏览器 Selection 对象

发布于 2022-12-26 20:54:46 字数 3365 浏览 146 评论 0

Selection 对象代表了当前页面中被选中的文本,可通过 getSelection() 方法获取该对象:

var se=window.getSelection();
var se=document.getSelection();

属性

anchorNode/baseNode

选择起点所在的节点/元素。

anchorOffset/baseOffset

选择起点相对于其所在的节点/元素的位置。

focusNode/extentNode

选择终点所在的节点/元素。

focusOffset/extentOffset

选择终点相对于其所在的节点/元素的位置。

isCollapsed

选择起点与终点是否重合(未选择任何内容)。

rangeCount

选择范围总数(1:已选择;0:未选择)。

type

已选择的类型("Range":范围(已选择);"Caret":插入光标(未选择))。

方法

getRangeAt()

获取指定位置的 Range 对象。

语法:

selection.getRangeAt(index);

参数:

index Range 的索引

返回值:

Range 对象

collapse()

将 Selection 对象折叠为插入点(不修改文档内容)。

语法:

selection.collapse(parentNode, offset);

参数:

parentNode 折叠后光标所在的元素
offset 0:光标位于元素文本的开头;1:光标位于元素文本的末尾

extend()

将 Selection 对象的焦点移动到指定元素的指定位置。

语法:

selection.extend(parentNode, offset);

参数:

parentNode 目标元素
offset 目标位置

modify()

修改 Selection 对象选择的内容。

语法:

selection.modify(alter, direction, granularity);

参数:

alter 修改类型("move":移动;"extend":扩展)
direction 修改进行的方向。可指定的值:

forward 向前(根据语言的方向)
backward 向后(根据语言的方向)
left 向左
right 向右

granularity 指定修改的间隔。可指定的值:

character 按字符
word 按单词
sentence 按句子
line 按行
paragraph 按段落
lineboundary 行边界
sentenceboundary 句边界
paragraphboundary 段落边界
documentboundary 文档边界

collapseToStart()

将光标定位到 Selection 对象首个 Range 的起点。

语法:

selection.collapseToStart();

collapseToEnd()

将光标定位到 Selection 对象最后一个个 Range 的终点。

语法:

selection.collapseToEnd();

selectAllChildren()

选中指定元素的所有子元素(之前选中的内容会被丢弃)。

语法:

selection.selectAllChildren(parentNode);

addRange()

将 Range 添加到 Selection 对象。

语法:

selection.addRange(range);

removeRange()

从 Selection 对象中移除指定的 Range 对象。

语法:

selection.removeRange(range)

removeAllRanges()

从 Selection 对象中移除所有的 Range 对象。

语法:

selection.removeAllRanges();

deleteFromDocument()

从文档中删除选中的内容。

语法:

selection.deleteFromDocument();

toString()

获取选中的文本内容。

语法:

selection.toString();

containsNode(aNode, aPartlyContained)

检测指定元素知否包含(或部分包含)在 Selection 对象中。

语法:

selection.containsNode(aNode, aPartlyContained);

参数:

aNode 要检测的元素
aPartlyContained 是否检测部分包含(true:检测部分包含;false:检测完全包含)

返回值:

true 包含/部分包含
false 不包含/完全包含

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

情深已缘浅

暂无简介

文章
评论
27 人气
更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文