总体思路:获取目标文本,添加高亮样式。 获取目标文本可以通过

  • 遍历 DOM,正则匹配
  • window.getSelection 方法

一、通过 CSS 样式

场景

  • 适合简单场景

思路

  1. 将目标文本用 <span> 标签包裹,并添加特定的 class

二、正则匹配高亮

场景

  • 搜索高亮

思路

  1. 遍历 DOM 树(TreeWalker API),使用正则匹配目标文本
  2. 将目标文本用 <span> 标签包裹,并添加特定的 class
  3. 更新 DOM

示例

 

三、使用 Range API 自定义高亮

场景

  • 高度自定义场景,例如选择文本弹出自定义面板

思路

  1. 遍历 DOM 树,

四、使用第三方库 mark.js