dev.to | 📄 原文链接 | 2026-09-14 收录

会删掉你选中文本的搜索高亮

来源:dev.to — 2026-09-13

📋 概述

用户报告选中一段文字复制后粘贴不出来,原因是几秒前在搜索框里输入的关键词触发了高亮重建:每次按键都把整段用 innerHTML 重写一遍。作者解释浏览器选区本质是一组指向具体节点的 Range,而给 innerHTML 赋值会删掉全部旧子节点并重新解析,节点一旦被移除,指向它的 Range 就一起消失,与是否命中关键词毫无关系。正解是 CSS Custom Highlight API:只给文本范围加样式,完全不碰 DOM 结构。

🔑 核心要点

💡 金句

他们的选区不是被弄坏了,而是被一段跟复制毫无关系的代码,一个节点一个节点地删掉了。
← 返回 dev.to 首页