1

我找到了让所有浏览器在按下“enter”时阻止默认事件的方法,以便显示换行符“\n”。原始代码在这里:http: //jsfiddle.net/FhEf6/3/

它工作得很好,但是当我将它包含在我自己的网站上时(使用 Jquery 1.7.2),它确实显示了新的“\n”,就像一个空格一样。我很好奇,因为在源代码中它正确显示了换行符。

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

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

编辑

Ups!...我需要在容器上使用“white-space:pre”。好吧,但是……我还是不明白,为什么它会这样工作?,一个新行是一个新行,还是不是?

4

1 回答 1

0

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

这不适用于您当前的代码,因为它是一个元素节点与一个textnode

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

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

于 2012-06-18T17:23:45.730 回答