返回

基于 Mark.js 的标注内容回显:提升标注工具的交互体验

前端

为了提升标注工具的交互体验,我们需要让用户能够对已标注的内容进行编辑。本文将介绍如何使用 Mark.js 库实现标注内容回显,并结合 AutoMark 方法实现标签的二次绘制,最终完成标注工具的标注内容编辑功能。

Mark.js 库简介

Mark.js 是一款轻量级 JavaScript 库,用于在文本中标记和突出显示匹配的子字符串。它提供了丰富的 API,使我们能够轻松地实现文本标记和内容回显功能。

实现标注内容回显

要实现标注内容回显,我们需要执行以下步骤:

  1. 创建 Mark.js 实例: 使用 Mark.js 的构造函数创建一个实例,并指定要标记的文本元素。
  2. 标记文本: 使用 markText() 方法将匹配的子字符串标记为特定颜色或背景。
  3. 获取已标记的文本: 使用 getMatchingOffsets() 方法获取已标记文本的偏移量。
  4. 根据偏移量创建标签: 使用这些偏移量创建 HTML 标签,并将标签插入到 DOM 中。

AutoMark 方法

AutoMark 是一种 JavaScript 方法,用于自动绘制 HTML 标签周围的文本。它可以帮助我们在标签周围创建矩形框,从而实现标注内容的二次绘制。

结合 AutoMark 实现二次绘制

为了结合 AutoMark 实现二次绘制,我们需要执行以下步骤:

  1. 安装 AutoMark 库: 通过 npm 或 CDN 安装 AutoMark 库。
  2. 创建 AutoMark 实例: 使用 AutoMark 的构造函数创建一个实例,并指定要绘制标签的元素。
  3. 绘制标签: 使用 mark() 方法绘制标签,从而在标签周围创建矩形框。

完整实现

结合 Mark.js 和 AutoMark,我们可以实现完整的标注内容回显功能。以下是示例代码:

const markInstance = new Mark(element);

const matches = markInstance.markText('searchText');

for (const match of matches) {
  const tag = createTag(match.start, match.end);
  element.appendChild(tag);
  AutoMark.mark(tag);
}

结论

通过使用 Mark.js 和 AutoMark,我们可以轻松地实现标注内容回显和标签二次绘制功能,从而提升标注工具的交互体验。这种方法既简单又有效,可以应用于各种需要文本标记和回显的场景。