vditor 的光标回到代码块时既不在段首也不在段尾的问题

IR 模式

直接输入

光标从下回到 code 代码块时,会停在倒数第二个字符上

demo1.gif

刷新后读取缓存

光标从下回到 code 代码块时,会直接跳到输入代码块语言的地方

demo2.gif

做出的尝试

我把 src/ts/ir/expandMarker.ts:63setSelectionFocus 注释了,还是有如上的规律

我看了下

这两个绑定按键的地方都没有再涉及到 range 的地方了

有知道的朋友麻烦告诉一下,有想法的朋友也可以一起讨论讨论

  • Vditor

    Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。

    175 引用 • 1080 回帖
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    3114 引用 • 16105 回帖 • 492 关注

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • Vanessa
    订阅者

    看了下,是通过 getSelection().getRangeAt(0) 获取的 range 不一致造成的。感觉这可能是浏览器在渲染解析时对隐藏元素所做的优化而导致的。

    想要解决这个问题,就只能自己计算 range ,而不是靠浏览器的上下键了。

    1 回复
  • wing
    作者

    哦明白了,那就得自己控制了,只要不和源码里其它地方冲突了就行,谢谢告知~