当光标改变时,我们需要实时获得当前光标的位置,获取到当前位置的文本样式,并在编辑器的工具栏按钮上高亮显示,这对于稳定的用户预期非常有用。

按照光标是否闭合,以及光标开始和光标结束的位置,会有几种不同的高亮和操作逻辑。

各大文字处理器软件和富文本编辑器的高亮逻辑基本可分为两种

  1. 光标闭合状态

    这个情况比较简单,当前处于加粗状态下,就进行加粗的高亮显示

  2. 光标非闭合状态时,不同的编辑器会有不同的处理

    • 光标开始和光标结束都在同一个加粗的节点上

      这个情况和光标闭合状态一致,都是加粗的高亮显示

    • 光标开始和光标结束不在同一个加粗的节点上

      • 只要有一端在加粗状态时,tinymce 会进行加粗高亮显示
      • 其他主流编辑器不会进行加粗的高亮显示

不只是加粗,其他内连样式均是同样的情况,如斜体,下划线,删除线等。