js-mark新时代的网页标记容器
创始人
2024-03-15 12:28:37
0

js-mark  🖍️️

✨ 它提供了一组可交互操作的工具来注释网页内容 ✨🖍️

js-mark是一个JavaScript库,用于在浏览器。他是一个可以在任何网页做标记的前端库, 它提供了一组可交互操作的工具来注释网页内容。 支持标记文本和 持久化存储与还原

在这里插入图片描述

Demo

如果进行简单的演示,可以打开http://webviews.cn/js-mark/运行方可查看演示效果

安装

方法一

npm install js-mark

方法二

使用静态文件,把dist/js-mark.js静态文件直接放到项目中

文档

基本配置

 import JsMark from "js-mark";const jsMark = new jsMark(opts:OPTS)

创建一个新的jsMark实例,opts 会合并至默认配置 (如下所示).

interface OPTS {el:Element,options:{isCover:boolean}
}

配置说明:

参数名类型描述是否必须默认值
elDocument标记的根节点元素null
optionsObject配置项(详细如下)null

options配置说明:

参数名类型描述是否必须默认值
isCoverBoolean标记内容是否可以覆盖true

实例方法

1.鼠标选中文本后的回调方法:jsMark.onSelected

鼠标选中根节点下的文本从后台获取数据使用jsMark.renderStore渲染已标注节点时会触发此方法,该方法回调返回一个Selected已选中对象


interface Selected {textNodes: Text[]; //选中的所有文本节点text: string;   //选中的文本offset: number; //选中文本相对于根结点的偏移量hasStoreRender: boolean; //是否来自renderStore方法渲染,一般用于从数据库拿到数据运用jsMark.renderStore方法判断首次渲染
}jsMark.onSelected = function (res:Selected) {};
2.标注选中文本:jsMark.repaintRange(nodes:Text[],uid:string,cssClass:string)

标注已经选中的文本,一般用在jsMark.onSelected回调方法内,接受三个参数


//定义
interface RangeNodes{textNodes: Text[]; //选中的所有文本节点,onSelected返回值的res.textNodesclassName: string; //需要标注的文本节点样式类uuid?: string; //标注文本节点的唯一id,会绑定到节点身上的data-selector属性,此id可用于清除当前标注节点,可选,不传会自动生成storeRenderOther?:any; //来自jsMark.renderStore方法的用户自定义参数
}function repaintRange(opts:RangeNodes):void{...}//调用示例
jsMark.onSelected = function (res) {jsMark.repaintRange({textNodes:res.textNodes});
};
3.点击已经标注文本后的回调方法:jsMark.onClick

点击已经标注的内容后,会触发jsMark.onClick方法,回掉方法接受一个uid为标签上唯一的一个id,可用于清除单个标注


jsMark.onClick = function (uid:string) {};
4.通过数据去标注根节点下的数据:jsMark.renderStore()

//定义
interface SelectInfo{offset: number;  //选中文本相对于根结点的偏移量text: string;   //选中的文本storeRenderOther?:any; //用户自定义参数
}function renderStore(obj: SelectInfo[]): void {...}//调用
jsMark.renderStore([{text:"测试",offset:20}])
5.查找跟节点下的单个词组:jsMark.findWord

通过jsMark.findWord查找文档中所有的可标注文本位置,返回相对于跟节点的偏移量

//定义
declare type Nullable = T | null;interface Selected {offset: number;  //偏移量text: string;   //文本信息
}function findWord(word:string):Nullable{...}//调用
jsMark.findWord("标注文本");
6.清除单个标注:jsMark.clearMark

清除标签上data-selector属性为唯一uid的标签标注

jsMark.clearMark(uid);
7.清除所有标注:jsMark.clearMarkAll
jsMark.clearMarkAll();
8.清除事件:jsMark.destroyEvent
jsMark.destroyEvent();

兼容性

IEFirefoxChromeSafariOpera
10+52+15+5.1+15+

相关内容

热门资讯

【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
ChatGPT 怎么用最新详细... ChatGPT 以其强大的信息整合和对话能力惊艳了全球,在自然语言处理上面表现出了惊人...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...