JavaScript关键词高亮库,适用于各种场景,支持原生JS和jQuery插件。

所在地:
美国
语言:
en
收录时间:
2026-08-26

核心定位

mark.js 是一个专注于文本关键词高亮的 JavaScript 库。它解决的核心问题是:在网页中快速、灵活地标记指定文本,且不依赖任何第三方框架。无论是原生 JavaScript 环境,还是 jQuery 项目,都可以直接集成使用。

主要特性

灵活的匹配方式

  • 支持字符串精确匹配
  • 支持正则表达式匹配
  • 支持自定义过滤函数,可排除特定上下文中的文本
  • 支持同义词映射,一次调用可高亮多个关联词

精细的控制选项

配置项 作用
className 自定义高亮样式类名
caseSensitive 是否区分大小写
separateWordSearch 是否按单词边界匹配
diacritics 是否忽略变音符号(如 é 与 e)
acrossElements 是否跨 HTML 标签匹配文本

性能与兼容性

  • 基于 DOM 遍历实现,非正则全文替换,避免破坏页面结构
  • 支持 iframe 内容高亮
  • 提供 markRanges 方法,可按字符范围精确标记
  • 兼容主流浏览器,包括 IE9 及以上版本

典型应用场景

  1. 站内搜索关键词高亮:用户搜索后,在结果页或详情页标记命中词
  2. 文本审校与标注:在编辑器或阅读视图中标记待修改内容
  3. 数据可视化辅助:在表格或列表中突出关键字段
  4. 浏览器扩展开发:在第三方页面注入高亮逻辑

使用方式

原生 JavaScript

var context = document.querySelector('.content');
var instance = new Mark(context);
instance.mark('关键词');

jQuery 插件

$('.content').mark('关键词', {
  className: 'highlight',
  separateWordSearch: false
});

注意事项

  • 高亮操作会向 DOM 中插入 <mark> 标签,需提前在 CSS 中定义 .highlight 或自定义类名的样式
  • 对动态更新的内容区域,需在内容渲染完成后再执行标记
  • 大量文本高亮时建议使用 acrossElements: true 以保证跨标签匹配的完整性,但会带来一定性能开销

结论

mark.js 适合需要轻量级、无依赖文本高亮能力的项目。其 API 设计简洁,选项覆盖了多数常见匹配需求,且对 DOM 结构的侵入性控制在合理范围内。对于不引入完整框架、仅需单一功能的场景,它是一个务实的选择。

相关导航