Javascript 使ContentEditable光标正常/一致地在标记中换行
我有一个ContentEditable div,我正在使用它来制作所见即所得编辑器(使用Chromium83) 问题是,当按enter键生成新行时,它与插入到div中的内容不一致,这会导致在上下按时光标的行为非常奇怪 例如,当您按向上键时,它有时会无缘无故地跳到页面的一半,而其他时候它只跳到它能找到的最近的div标记,而不是只移动一行。 我的问题是,通过处理enter键或更改编辑器div的某些内容,我可以做些什么,使光标像普通文本编辑器一样一行一行地上下移动?(即使该行为空) 似乎将每一行都包装在一个div中是可行的,这是Chrome默认应该做的,但是当发送垃圾邮件时,enter Chrome有时只插入一个div标记 我试过:Javascript 使ContentEditable光标正常/一致地在标记中换行,javascript,html,wysiwyg,contenteditable,Javascript,Html,Wysiwyg,Contenteditable,我有一个ContentEditable div,我正在使用它来制作所见即所得编辑器(使用Chromium83) 问题是,当按enter键生成新行时,它与插入到div中的内容不一致,这会导致在上下按时光标的行为非常奇怪 例如,当您按向上键时,它有时会无缘无故地跳到页面的一半,而其他时候它只跳到它能找到的最近的div标记,而不是只移动一行。 我的问题是,通过处理enter键或更改编辑器div的某些内容,我可以做些什么,使光标像普通文本编辑器一样一行一行地上下移动?(即使该行为空) 似乎将每一行都包装
- 在enter上插入unicode“换行符”(这会中断本机所见即所得的编辑,例如按enter键不会执行列表或清除格式)
- 将默认段落分隔符更改为
,仍然只是随机放置,而不是每行 - 按enter键插入
,只放置一次 - 手动插入
标记无效 - 执行
document.execCommand(“insertLineBreak”)
Reddit上有人提到我,这是一个非常好用的WYSIWYG编辑器,我最终在我的项目中使用了它。你能发布你的代码吗?@kmoser我认为这没有什么帮助,我实际上只是在编辑器中使用了一个基本的
元素,这种光标行为基本上发生在每个contenteditable编辑器上,简单或复杂。我也没有重写enter事件,除了我在post中尝试过的那些方式,我从未在任何编辑器中看到过这种行为。我还用Chrome制作了一个测试页面,但无法复制。我的直觉告诉我你的键盘有问题,按上/下箭头会导致多次击键。你试过不同的键盘吗?