Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使ContentEditable光标正常/一致地在标记中换行_Javascript_Html_Wysiwyg_Contenteditable - Fatal编程技术网

Javascript 使ContentEditable光标正常/一致地在标记中换行

Javascript 使ContentEditable光标正常/一致地在标记中换行,javascript,html,wysiwyg,contenteditable,Javascript,Html,Wysiwyg,Contenteditable,我有一个ContentEditable div,我正在使用它来制作所见即所得编辑器(使用Chromium83) 问题是,当按enter键生成新行时,它与插入到div中的内容不一致,这会导致在上下按时光标的行为非常奇怪 例如,当您按向上键时,它有时会无缘无故地跳到页面的一半,而其他时候它只跳到它能找到的最近的div标记,而不是只移动一行。 我的问题是,通过处理enter键或更改编辑器div的某些内容,我可以做些什么,使光标像普通文本编辑器一样一行一行地上下移动?(即使该行为空) 似乎将每一行都包装

我有一个ContentEditable div,我正在使用它来制作所见即所得编辑器(使用Chromium83)

问题是,当按enter键生成新行时,它与插入到div中的内容不一致,这会导致在上下按时光标的行为非常奇怪

例如,当您按向上键时,它有时会无缘无故地跳到页面的一半,而其他时候它只跳到它能找到的最近的div标记,而不是只移动一行。

我的问题是,通过处理enter键或更改编辑器div的某些内容,我可以做些什么,使光标像普通文本编辑器一样一行一行地上下移动?(即使该行为空)

似乎将每一行都包装在一个div中是可行的,这是Chrome默认应该做的,但是当发送垃圾邮件时,enter Chrome有时只插入一个div标记

我试过:

  • 在enter上插入unicode“换行符”(这会中断本机所见即所得的编辑,例如按enter键不会执行列表或清除格式)
  • 将默认段落分隔符更改为
    ,仍然只是随机放置,而不是每行
  • 按enter键插入

    ,只放置一次
  • 手动插入
    标记无效
  • 执行
    document.execCommand(“insertLineBreak”)
所有这些要么根本不起作用,要么在上下按时仍会导致光标跳到编辑器中的随机位置。我只想让它像普通的文本编辑器一样上下移动1行

我甚至在网上找到的现代所见即所得编辑器中看到了这种情况,但在任何地方都找不到修复方法

谢谢你的帮助

编辑: 我在Chromium Dev google group上发布了这个问题,google group的post editor(旧版本,不确定“新外观”编辑器)显示了我正在寻找的行为,因此如果有人知道它是如何工作的,这可能会有所帮助

编辑2:
Reddit上有人提到我,这是一个非常好用的WYSIWYG编辑器,我最终在我的项目中使用了它。

你能发布你的代码吗?@kmoser我认为这没有什么帮助,我实际上只是在编辑器中使用了一个基本的
元素,这种光标行为基本上发生在每个contenteditable编辑器上,简单或复杂。我也没有重写enter事件,除了我在post中尝试过的那些方式,我从未在任何编辑器中看到过这种行为。我还用Chrome制作了一个测试页面,但无法复制。我的直觉告诉我你的键盘有问题,按上/下箭头会导致多次击键。你试过不同的键盘吗?