关于 Selection(getSelection ) 对象的一些常规用法集锦

摘要:
最近,在业务场景中有许多涉及所选文本的操作。现在,记录了一些一般用法和场景。

最近在做到的业务场景中涉及到选中文本的操作较多,现在将一些常规用法和场景记录下。

1. 作用及获取

Selection 对象主要表示用户选择的文本范围或者插入符号的当前位置,代表页面的文本选区,可能跟横跨多个元素。获取方法如下:

this.selectOperate = window.getSelection ? window.getSelection() : window.document.getSelection();

2.常用属性

记住2个参数:anchor指向用户开始选择的方法,focus指向结束选择的地方,经常使用的有:

  • anchorNode: 选择文本开始所在的节点

  • focusNode: 选择文本结束点所在的节点

  • anchorOffset: 选择文本开始所在的节点位置

  • focusOffset: 选择文本结束所在的节点位置

关于 Selection(getSelection ) 对象的一些常规用法集锦第1张

3.Range对象

选中的文字可以转换成Range对象,通过Range对象可以作一些操作,比如删除,复制,插入,替换,或许选中的内容。
获取Range对象

  • getRangeAt(0): 获取当前选中的range对象
var range = this.selectOperate.getRangeAt(0);

关于 Selection(getSelection ) 对象的一些常规用法集锦第2张

range对象能做的事:

  • range.cloneContents 克隆选中文档片段

关于 Selection(getSelection ) 对象的一些常规用法集锦第3张

  • range.deleteContents 删除选中片段

关于 Selection(getSelection ) 对象的一些常规用法集锦第4张

其他属性,与前面的功能差不多~

  • range.startContainer 指用户选择内容开始处的容器节点
  • range.endContainer 指用户选择内容结尾处的容器节点
  • range.startOffset 开始容器的节点位置
  • range.endOffset 结尾容器的节点位置

关于 Selection(getSelection ) 对象的一些常规用法集锦第5张

-range.insertNode 插入节点

关于 Selection(getSelection ) 对象的一些常规用法集锦第6张

    let oFragment = range.createContextualFragment('1234'); // 创建一个需要添加的range片段
    let oLastNode = oFragment.lastChild ; // 获取text节点1234
    range.insertNode(oFragment) ; // 在range处插入
    range.setEndAfter(oLastNode ) ; // 设置光标在插入的位置
    range.setStartAfter(oLastNode ); // 设置光标在插入的位置
    select.removeAllRanges(); // 去除之前的选择range
    select.addRange(range); // 将range设置为当前的range

免责声明:文章转载自《关于 Selection(getSelection ) 对象的一些常规用法集锦》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Redis Zset类型跳跃表算法实现(JAVA)AutoFac实现程序集级别的依赖注入下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

django的优缺点(非原创)

Django做了很多。使用它快速开发一些Web应用程序是很好的。因此,在一些人眼中,Django只不过是一种灵丹妙药,但对一些人来说,它也是一种毒药和剧毒。Django开发人员也讨论并试图支持SQLAlchemy,但最终放弃了。据估计,成本太高,很难与Django的其他模块集成。尽管Django的ORM不如SQLAlchemy强大,但它并不弱。Django的...

axios 处理超时问题 记录

前言:记录最近两天处理请求超时的逻辑。...

db2数据导出导入del与ixf格式

ixf格式保存的是结构和数据,是一个二进制文件,ixf文件不可视。...

PHP 垃圾回收机制(转)

GC进程通常从每个会话开始运行。GC的目的是在会话文件过期__destruct/unset__destruct()析构函数后自动销毁和删除它们。PHP将使用全局变量session.gc_Probability和session.gc_advisor的值session.gc_Probability=1,...

mac下vscode插件位置

1、 位置:Mac:User/(您的用户名)/vscode/extensions II下vscode插件的存储位置。搜索步骤:以我的mac为例,打开查找器,单击远程CD,单击转到上面的文件夹,单击macintosh HD,单击用户(或用户),单击mymac,单击。vscode(.vscode是一个隐藏文件。如果默认情况下不显示,请按住ctrl+shift+....

安装pygame

在python3中安装pygame库。一段时间后,您可以看到安装成功,并且可以导入pygame...