我们可以看到,通过 selection.getRangeAt(i) 获取当前选中范围,然后通过一些操作过滤掉非 Text 节点,拿到只包含文本的新的 Range。之后经过一些计算,标记出用户选中的真实范围。
由于 deeplinks 本身实现逻辑较为复杂,与本篇主题有一些偏离,这里没有详细说明,感兴趣的同学可以自行阅读源码。
常见面试知识点、技术方案分析、教程,都可以扫码关注公众号“众里千寻”获取,或者来这里 https://everfind.github.io/posts/ 。
我们可以看到,通过 selection.getRangeAt(i) 获取当前选中范围,然后通过一些操作过滤掉非 Text 节点,拿到只包含文本的新的 Range。之后经过一些计算,标记出用户选中的真实范围。
由于 deeplinks 本身实现逻辑较为复杂,与本篇主题有一些偏离,这里没有详细说明,感兴趣的同学可以自行阅读源码。
常见面试知识点、技术方案分析、教程,都可以扫码关注公众号“众里千寻”获取,或者来这里 https://everfind.github.io/posts/ 。
内容版权声明:除非注明,否则皆为本站原创文章。