当前位置:首页 > JavaScript

js实现选区

2026-02-02 07:15:48JavaScript

选区的基本概念

选区(Selection)指用户在文档或输入框中选择的文本范围。通过JavaScript可以获取、修改或操作选区内容,常用于富文本编辑器、代码高亮等场景。

js实现选区

获取当前选区

使用 window.getSelection() 方法获取当前选区对象:

js实现选区

const selection = window.getSelection();
// 获取选中文本内容
const selectedText = selection.toString();

创建和设置选区

通过 Range 对象和 Selection 接口动态创建选区:

const range = document.createRange();
const targetNode = document.getElementById('target');
range.selectNodeContents(targetNode); // 选择节点内容

const selection = window.getSelection();
selection.removeAllRanges(); // 清除现有选区
selection.addRange(range);   // 设置新选区

操作选区范围

  • 调整选区起始点
    range.setStart(targetNode, 2); // 从目标节点的第2个子节点开始
    range.setEnd(targetNode, 4);   // 到第4个子节点结束
  • 选区可视化高亮
    通过CSS伪类 ::selection 自定义选中样式:
    ::selection {
      background-color: #ffcc00;
      color: #000;
    }

实际应用示例

在富文本编辑器中插入内容到选区位置:

function insertTextAtSelection(text) {
  const selection = window.getSelection();
  if (selection.rangeCount > 0) {
    const range = selection.getRangeAt(0);
    range.deleteContents(); // 删除选中内容
    range.insertNode(document.createTextNode(text)); // 插入新文本
  }
}

兼容性注意事项

  • 旧版IE(≤8)使用 document.selection 而非 window.getSelection()
  • 移动端浏览器对选区操作的支持可能有限,需测试目标平台。

常用API速查

方法/属性 说明
selection.anchorNode 选区起点所在的节点
selection.extend() 动态扩展选区范围
range.cloneContents() 复制选区内容为文档片段
range.extractContents() 提取并移除选区内容

标签: 选区js
分享给朋友:

相关文章

vue实现js休眠

vue实现js休眠

Vue 中实现 JavaScript 休眠 在 Vue 中实现 JavaScript 休眠通常需要使用异步方式,以避免阻塞主线程。以下是几种常见方法: 使用 setTimeout 和 Pro…

vue实现选区

vue实现选区

Vue 实现选区的方法 在 Vue 中实现选区功能通常涉及 DOM 操作和事件处理。以下是几种常见的实现方式: 使用原生 JavaScript 的 Selection API 通过 window.g…

js实现分页

js实现分页

分页的基本实现思路 在JavaScript中实现分页功能通常需要结合前端和后端逻辑。前端负责渲染分页控件和处理用户交互,后端负责提供分页数据。 前端分页实现 纯前端分页适用于数据量较小的情况,可以直…

js实现乘

js实现乘

JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Jav…

js手势实现

js手势实现

手势识别实现方法 在JavaScript中实现手势识别通常涉及监听触摸事件(touchstart、touchmove、touchend)或鼠标事件(mousedown、mousemove、mouseu…

js验证码的实现

js验证码的实现

验证码的基本实现原理 验证码(CAPTCHA)的核心目标是区分人类用户和自动化程序。JavaScript可用于生成或验证客户端验证码,但需注意纯前端验证可能被绕过,通常需结合后端验证。 纯前端验证码…