Jquery 和 Contenteditable - 强制换行符显示为单个空格

Jquery and Contenteditable - Forced newlines are shown like a single space

本文关键字:显示 单个 空格 换行符 Contenteditable Jquery      更新时间:2023-09-26

我找到了使所有浏览器在按"输入"时阻止默认事件的方法,以便显示换行符"'"。原始代码在这里:http://jsfiddle.net/FhEf6/3/

它运行良好,但是当我将其包含在我自己的站点上时(使用 Jquery 1.7.2),它确实显示新的"'",就像一个空格一样。我很好奇,因为在源代码中它正确显示了换行符。

另一件事是,如果我尝试用<br>而不是换行符替换......<br>完全是这样显示的(查看源代码,<,>被各自的 html 实体替换......

这是一件很奇怪的事情,因为原始代码在 jsfiddle 中运行良好,我没有进行任何更改。我在这里读到了一个问题(查看帖子),但我认为这不是一个好的解决方案。

编辑

起伏...我需要在容器上使用"空格:pre"。好的,但是...我仍然不明白它,为什么它以这种方式工作?,新行是新行,还是不是?

仍然是 HTML,因此使用换行符将不起作用。坚持使用
标签。

这不适用于您当前的代码,因为它是元素节点而不是文本节点

我建议对所有内容可编辑的项目使用 Rangy。

我在这里有一个几乎可行的解决方案:http://jsfiddle.net/7A8Xw/(在 chrome 中,它会插入中断,但如果您在内容末尾按回车键,它不会将光标移动到 br 之后(如果您按两次即可工作))