编辑器涉及到不得不了解的概念

1、getSelection

  • 是当前激活选中区(即高亮文本);
  • 在非IE浏览器(Firefox、Safari、Chrome、Opera)下可以使用window.getSelection()获得selection对象,
1.1、getSelection相关属性:anchorNode、baseNode、extentNode、focusNode

有些比较老的浏览器可能没有baseNode和extentNode

anchor
选中区域的“起点”。
focus
选中区域的“结束点”。
range
是一种fragment(HTML片断),它包含了节点或文本节点的一部分。一般情况下,同一时刻页面中只可能有一个range,也有可能是多个range(使用Ctrl健进行多选,不过有的浏览器不允许,例如Chrome)。可以从selection中获得range对象,也可以使用document.createRange()方法获得。

属性

  • anchorNode 返回包含“起点”的节点
  • anchorOffset “起点”在anchorNode中的偏移量
  • focusNode 返回包含“结束点”的节点。
  • focusOffset “结束点”在focusNode中的偏移量。
  • isCollapsed “起点”和“结束点”是否重合。
  • rangeCount
    返回selection中包含的range对象的数目,一般存在一个range,Ctrl健配合使用可以有多个,一般浏览器都是一个,唯独 firefox 可以多个

通过实例来理解这几个属性吧

0.png
1.png
2.png
3.png
4.png

https://stackoverflow.com/questions/32227149/changing-caret-color-in-contenteditable-div

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 2017/11/09 · JavaScript · 富文本 原文出处: 百度EUX/田光宇 近期项目中需要开发一个...
    麦壳儿UIandFE2阅读 15,412评论 3 38
  •   DOM 1 级主要定义的是 HTML 和 XML 文档的底层结构。   DOM2 和 DOM3 级则在这个结构...
    霜天晓阅读 5,362评论 1 3
  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 8,873评论 1 11
  • 90天重新启航,新五组的激情感染自己 6.7.8三个月目标: 1.学会游泳 2.6月微信语音课程分享 3.通过7月...
    见喜and瑜伽阅读 3,089评论 0 2
  • 日常生活中,经常有人说起“贵人”两个字眼。如遇到办事顺利,别人给予方便,会说那你遇到贵人了。什么是贵人?有的人说是...
    慢城wucheng阅读 5,622评论 0 1