js - - - - - getSelection 对光标和选区的操作

本文详细介绍了JavaScript中的window.getSelection()方法,包括其属性如anchorNode、focusNode等以及常用的方法如collapse、extend等。通过实例展示了如何在网页中获取和操作用户选择的文本内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

getSelection

官方MDN地址

示例代码

<template>
  <div>这里是一段默认的文字内容</div>
</template>
<script>
export default {
  name: "Home",
  mounted() {
    document.addEventListener("mouseup", () => {
      console.log("window.getSelection(): ", window.getSelection());
      const str = window.getSelection()?.toString();
      !!str && console.log("选择的文案为:", str);
    });
  },
};
</script> 

从左至右选择一段文本,打印日志如下:

在这里插入图片描述

属性

项目Value
anchorNode返回该选区起点所在的节点。
anchorOffset返回一个数字,表示该选区起点在anchorNode中的位置偏移量。
baseNode和anchorNode的属性一致。
baseOffset和anchorOffset的属性一致。
extentNodeselection选中文字的结束节点。
extentOffset选中文字最后所处的标签的偏移量。
focusNode返回该选区终点所在的节点。
focusOffset返回一个数字,表示该选区终点在focusNode中的位置偏移量。
isCollapsed表示选区的起始位置和终止位置是否重合的 Boolean 值,如果为 true,可以认为当前没有内容选中。
rangeCount选区中包含的 Range 对象数量
type描述当前选区的类型。(None:当前没有选择;Caret:仅单击,但未选择,选区已折叠(即光标在字符之间,并未处于选中状态);Range: 选择的是一个范围)

注意:
以上所有属性都是只读属性。

方法

项目Value
getRangeAt返回选区开始的节点(Node)。
collapse(光标落在的目标节点, offset)将当前的选区折叠为一个点。
extend将选区的焦点移动到一个特定的位置。
modify修改当前的选区。
collapseToStart将当前的选区折叠到起始点。
collapseToEnd将当前的选区折叠到最末尾的一个点。
selectAllChildren将某一指定节点的子节点框入选区
addRange一个区域(Range)对象将被加入选区。
removeRange从选区中移除一个区域。
removeAllRanges将所有的区域都从选区中移除。
deleteFromDocument从页面中删除选区中的内容。
selectionLanguageChange当键盘的朝向发生改变后修改指针的Bidi优先级。
toString返回当前选区的纯文本内容。
containsNode判断某一个node是否为当前选区的一部分。

参考文献: https://juejin.cn/post/6976147434938302471

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值