利用Javascript获取选择文本所在的句子详解-创新互联
前言
创新互联公司2013年成立,先为策勒等服务建站,策勒等地企业,进行企业商务咨询服务。为策勒企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。最近收到一个 issue 期望能在划词的时候同时保存单词的上下文和来源网址。这个功能其实很久之前就想过,但感觉不好实现一直拖延没做。真做完发现其实并不复杂,完整代码在这里,或者继续往下阅读分析。话不多说了,来一起看看详细的介绍吧。
原理分析
获取选择文本
通过 window.getSelection()
即可获得一个 Selection 对象,再利用 .toString()
即可获得选择的文本。
锚节点与焦节点
在 Selection 对象中还保存了两个重要信息,anchorNode 和 focusNode,分别代表选择产生那一刻的节点和选择结束时的节点,而 anchorOffset 和 focusOffset 则保存了选择在这两个节点里的偏移值。
这时你可能马上就想到第一个方案:这不就好办了么,有了首尾节点和偏移,就可以获取句子的头部和尾部,再把选择文本作为中间,整个句子不就出来了么。
当然不会这么简单哈stuck_out_tongue。
强调一下
一般情况下,anchorNode 和 focusNode 都是 Text 节点(而且因为这里处理的是文本,所以其它情况也会直接忽略),可以考虑这种情况:
Saladict is awesome!
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
文章标题:利用Javascript获取选择文本所在的句子详解-创新互联
文章链接:http://hbruida.cn/article/hehjc.html