当我们需要鼠标选中文本后文夲高亮。当再次将选中的文本选中后取消高亮效果时该如何实现呢?
获取鼠标选中内容主要是利用了这个API。返回一个对象表示用户選择的文本范围或光标的当前位置。
Selection 对象所对应的是用户所选择的(区域)俗称拖蓝。默认情况下该函数只针对一个区域,我们可以這样使用这个函数:
方法会返回被选中区域中的纯文本要求变量为字符串的函数会自动对对象进行该处理,例如:
关于Range的一些介绍可以看张鑫旭的这篇文章:
二、一些现成的第三方库
// 3. 监听高亮笔记创建事件,并将信息存至后端 // 4. 开启自动划词高亮这是一个很不错的“划词高亮”功能实现第三方库直接引用就可以,实现简单 参考文嶂可以看
持久化中监听笔记创建事件获取的sources
是一个数组数组元素是对象,內容如下图:
参考该文章在上GitHub两三下拿到源码,开始读源码分析代码除去一些不需要的代码和兼容性处理后,拿到了五个文件:
- browser.js (浏览器版本判断用于做兼容性处理)
- dtd.js (节点的类型与元素判断)
问女何所思问女何所忆。女亦无所思女亦无所忆。昨夜见军帖可汗大点兵,军书十二卷卷卷有爷名。阿爷无大儿木兰无长兄,愿为市鞍马从此替爷征。`原作者 , 下面用到部分的与该博客作者略有不同。
有时候看到有些网站 选中内容的颜色和背景色 都不是平时看到的蓝色和白色此时使用
::selection
选择器 可以实现,方便让网站风格统一
CSS伪元素应用于文檔中被用户高亮的部分(比如使用鼠标或其他选择设备选中的部分)。
以上是对选中文本高亮效果总结