JavaScript中利用Range对象实现复杂的文本选择操作

Range 是 JavaScript 中精确控制文档文本选区的核心对象,由起点和终点定义,支持跨节点操作,需结合 Selection 实现界面反馈。JavaScript 中的 Range 对象是精确控制文档中任意文本片段选择的核心工具,比 selection API 更底层、更灵活,适合实现高亮、富文本编辑、光标定位、跨节点选区等复杂场景。理解 Range 的基本构成Range 表示文档中连续的一段内容,由起点(startContainer / startOffset)和终点(endContainer / endOffset)共同定义。起点和终点可以是文本节点、元素节点,甚至跨不同父级------这是它能处理复杂结构的关键。创建方式主要有两种:document.createRange():新建空 Range,再用 setStart()、setEnd() 或 selectNode() 等方法设定范围 getSelection().getRangeAt(0):从当前用户选区中提取已存在的 Range(需确保有选区)常见实用操作示例以下操作均基于一个已创建并配置好的 range 实例: 有道翻译AI助手 有道翻译提供即时免费的中文、英语、日语、韩语、法语、德语、俄语、西班牙语、葡萄牙语、越南语、印尼语、意大利语、荷兰语、泰语全文翻译、网页翻译、文档翻译、PDF翻

相关推荐
“AI国潮设计-小江”4 分钟前
《【AIGC实战】Python+SDXL批量生成“英歌舞草莓抱抱卷蛋糕”IP插牌立牌方案,锁定角色一致性,甜品插件化落地》
开发语言·人工智能·python·prompt·aigc
LMT流氓兔4 分钟前
第五单元——第7课:工具读取用户身份,而不是让模型填写身份
python·langchain
Ivanqhz5 分钟前
超参数考量与设计
数据库·人工智能·深度学习·算法·机器学习
FlyWIHTSKY7 分钟前
Agent阶段一:基础夯实
python·ai·fastapi
估值探索者9 分钟前
【Python量化技术指标实战 04】布林带通道突破,怎么知道是真突破还是假突破?
java·开发语言·python·接口·股票数据api接口
张小姐的猫12 分钟前
【MySQL】表的约束
android·linux·服务器·数据库·c++·mysql·adb
爱吃牛肉的大老虎18 分钟前
Redis之分布式 Session问题
数据库·redis·分布式
fanruitian20 分钟前
python property
开发语言·python
guo_wen_qiang21 分钟前
mongodb集群模式的原理
服务器·数据库·mongodb
captain37624 分钟前
Spring Boot日志
java·数据库·spring boot